MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / xSGReadData

Function xSGReadData

src/SB/Core/x/xsavegame.cpp:822–864  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

820}
821
822S32 xSGReadData(st_XSAVEGAME_DATA* xsgdata, st_XSAVEGAME_READCONTEXT* rctxt, char* buff,
823 S32 elesiz, S32 n)
824{
825 S32 cnt;
826 if (elesiz == 0)
827 {
828 return 0;
829 }
830
831 cnt = n * elesiz;
832 if (cnt == 0)
833 {
834 return cnt;
835 }
836
837 st_XSAVEGAME_CLIENT* clt = (st_XSAVEGAME_CLIENT*)rctxt;
838 if (clt != NULL && cnt > clt->readremain)
839 {
840 xUtil_idtag2string(clt->idtag, 0);
841 return 0;
842 }
843
844 if (clt != NULL)
845 {
846 memcpy(buff, clt->readpos, cnt);
847 }
848 else
849 {
850 memcpy(buff, xsgdata->walkpos, cnt);
851 }
852
853 xsgdata->walkpos += cnt;
854 xsgdata->walkremain -= cnt;
855
856 if (clt != NULL)
857 {
858 clt->readpos += cnt;
859 clt->readamt += cnt;
860 clt->readremain -= cnt;
861 }
862
863 return cnt / elesiz;
864}
865
866S32 xSGReadData(st_XSAVEGAME_DATA* xsgdata, st_XSAVEGAME_READCONTEXT* rctxt, char* buff, S32 n)
867{

Callers 8

xSER_xsgclt_ldproc_verFunction · 0.70
xSER_xsgclt_ldproc_cltFunction · 0.70
xSER_xsgclt_ldproc_fillFunction · 0.70
xSG_cb_leader_loadFunction · 0.70
xSG_ld_readheadFunction · 0.70
xSG_ld_findcltblkFunction · 0.70
xSGT_LoadLoadCBFunction · 0.50
xSGT_LoadPrefsCBFunction · 0.50

Calls 2

memcpyFunction · 0.85
xUtil_idtag2stringFunction · 0.70

Tested by

no test coverage detected