More byteswaps
This commit is contained in:
parent
10efa92153
commit
b480f7bfce
5 changed files with 147 additions and 92 deletions
|
|
@ -7,6 +7,7 @@ extern "C"
|
|||
#endif
|
||||
|
||||
#include "game/animdata.h"
|
||||
#include "game/hsfformat.h"
|
||||
|
||||
void byteswap_u32(u32 *src);
|
||||
void byteswap_s32(s32 *src);
|
||||
|
|
@ -17,6 +18,9 @@ void byteswap_animbmpdata(void *src, AnimBmpData *dest);
|
|||
void byteswap_animframedata(AnimFrameData *src);
|
||||
void byteswap_animlayerdata(AnimLayerData *src);
|
||||
|
||||
|
||||
void byteswap_hsfheader(HsfHeader *src);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ void ObjectSetup(void)
|
|||
Process *curr = HuPrcCurrentGet();
|
||||
#if VERSION_NTSC
|
||||
if (omovlevtno == 0) {
|
||||
//BootProgExec();
|
||||
BootProgExec();
|
||||
}
|
||||
#else
|
||||
if(SystemInitF == FALSE) {
|
||||
|
|
@ -119,14 +119,14 @@ void ObjectSetup(void)
|
|||
HuSprPosSet(group, 0, 288, 240);
|
||||
HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF);
|
||||
if (omovlevtno != 0) {
|
||||
HuAudSndGrpSetSet(0);
|
||||
// data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||
// sprite_hudson = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||
// HuSprPosSet(group, 1, 288, 240);
|
||||
// HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuWinInit(1);
|
||||
//BootTitleCreate();
|
||||
//HuAudSndGrpSetSet(0);
|
||||
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||
sprite_hudson = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||
HuSprPosSet(group, 1, 288, 240);
|
||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
//HuWinInit(1);
|
||||
BootTitleCreate();
|
||||
SystemInitF = 1;
|
||||
}
|
||||
else {
|
||||
|
|
@ -162,21 +162,21 @@ void ObjectSetup(void)
|
|||
// TODO PC
|
||||
CharManInit();
|
||||
#endif
|
||||
HuWindowInit();
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
HuWindowInit();
|
||||
MGSeqInit();
|
||||
#endif
|
||||
//HuWinInit(1);
|
||||
//BootTitleCreate();
|
||||
// data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||
// sprite_hudson = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||
BootTitleCreate();
|
||||
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||
sprite_hudson = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||
HuSprPosSet(group, 1, 288, 240);
|
||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
//while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) {
|
||||
// HuPrcVSleep();
|
||||
//}
|
||||
while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (i = 0; i < 180; i++) {
|
||||
|
|
@ -209,9 +209,9 @@ void ObjectSetup(void)
|
|||
//group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0));
|
||||
//msmSysLoadGroup(0, group_samp, 0);
|
||||
//HuMemDirectFree(group_samp);
|
||||
//while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) {
|
||||
// HuPrcVSleep();
|
||||
//}
|
||||
while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (i = 0; i < 180; i++) {
|
||||
|
|
@ -234,21 +234,21 @@ void ObjectSetup(void)
|
|||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
//tick_prev = OSGetTick();
|
||||
//if (!SystemInitF) {
|
||||
tick_prev = OSGetTick();
|
||||
if (!SystemInitF) {
|
||||
// HuAudSndGrpSetSet(0);
|
||||
// SystemInitF = 1;
|
||||
//}
|
||||
//while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 1000) {
|
||||
// HuPrcVSleep();
|
||||
//}
|
||||
SystemInitF = 1;
|
||||
}
|
||||
while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 1000) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
group_thp = HuSprGrpCreate(1);
|
||||
//sprite_thp = HuTHPSprCreateVol("movie/opmov_a00.thp", 0, 100, 122);
|
||||
//HuSprGrpMemberSet(group_thp, 0, sprite_thp);
|
||||
//HuSprPosSet(group_thp, 0, 288, 240);
|
||||
HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4));
|
||||
//HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4));
|
||||
//demoWinId = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0);
|
||||
//HuWinMesSpeedSet(demoWinId, 0);
|
||||
//HuWinBGTPLvlSet(demoWinId, 0);
|
||||
|
|
@ -272,7 +272,7 @@ void ObjectSetup(void)
|
|||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinKill(demoWinId);
|
||||
//HuWinKill(demoWinId);
|
||||
//HuTHPClose();
|
||||
HuPrcVSleep();
|
||||
//HuSprGrpKill(group_thp);
|
||||
|
|
@ -286,7 +286,7 @@ void ObjectSetup(void)
|
|||
goto repeat;
|
||||
}
|
||||
WipeColorSet(255, 255, 255);
|
||||
HuAudSStreamAllFadeOut(500);
|
||||
//HuAudSStreamAllFadeOut(500);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -328,10 +328,10 @@ void ObjectSetup(void)
|
|||
int i;
|
||||
for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) {
|
||||
if (frame == demoMessTimeTbl[i * 2]) {
|
||||
HuWinMesSet(demoWinId, MAKE_MESSID(54, i));
|
||||
//HuWinMesSet(demoWinId, MAKE_MESSID(54, i));
|
||||
}
|
||||
if (frame == demoMessTimeTbl[(i * 2) + 1]) {
|
||||
HuWinHomeClear(demoWinId);
|
||||
//HuWinHomeClear(demoWinId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -365,19 +365,19 @@ void ObjectSetup(void)
|
|||
}
|
||||
#endif
|
||||
group = HuSprGrpCreate(3);
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM);
|
||||
// sprite = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 0, sprite);
|
||||
// HuSprPosSet(group, 0, 288, 240);
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM);
|
||||
// sprite = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 1, sprite);
|
||||
// HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM);
|
||||
// sprite = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 2, sprite);
|
||||
// HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
// HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF);
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM);
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 0, sprite);
|
||||
HuSprPosSet(group, 0, 288, 240);
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM);
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 1, sprite);
|
||||
HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM);
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 2, sprite);
|
||||
HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -414,15 +414,15 @@ void ObjectSetup(void)
|
|||
#endif
|
||||
HuSprGrpKill(group);
|
||||
group = HuSprGrpCreate(1);
|
||||
// if (!option) {
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM);
|
||||
// }
|
||||
// else {
|
||||
// data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM);
|
||||
// }
|
||||
// sprite = HuSprCreate(data, 0, 0);
|
||||
// HuSprGrpMemberSet(group, 0, sprite);
|
||||
// HuSprPosSet(group, 0, 288, 240);
|
||||
if (!option) {
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM);
|
||||
}
|
||||
else {
|
||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM);
|
||||
}
|
||||
sprite = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 0, sprite);
|
||||
HuSprPosSet(group, 0, 288, 240);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -557,28 +557,28 @@ void ObjectSetup(void)
|
|||
#else
|
||||
bootGrpId = HuSprGrpCreate(13);
|
||||
#endif
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_BG_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 0, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprDrawNoSet(bootGrpId, 0, 127);
|
||||
// HuSprPosSet(bootGrpId, 0, 288, 240);
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 1, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 1, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
// HuSprPosSet(bootGrpId, 1, 288, 420);
|
||||
sprite_data = HuSprAnimReadFile(TITLE_BG_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 0, sprite);
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprDrawNoSet(bootGrpId, 0, 127);
|
||||
HuSprPosSet(bootGrpId, 0, 288, 240);
|
||||
sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 1, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 1, sprite);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprPosSet(bootGrpId, 1, 288, 420);
|
||||
#if VERSION_NTSC
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 2, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
// HuSprPosSet(bootGrpId, 2, 288, 380);
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||
// sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 3, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
// HuSprPosSet(bootGrpId, 3, 288, 200);
|
||||
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 2, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 2, 288, 380);
|
||||
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 3, sprite);
|
||||
HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 3, 288, 200);
|
||||
#else
|
||||
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
|
|
@ -586,11 +586,11 @@ void ObjectSetup(void)
|
|||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 2, 288, 200);
|
||||
for(i=0; i<5; i++) {
|
||||
// sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_EN_ANM+i);
|
||||
// sprite = HuSprCreate(sprite_data, 3+i, 0);
|
||||
// HuSprGrpMemberSet(bootGrpId, 3+i, sprite);
|
||||
// HuSprAttrSet(bootGrpId, 3+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
// HuSprPosSet(bootGrpId, 3+i, 288, 340);
|
||||
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_EN_ANM+i);
|
||||
sprite = HuSprCreate(sprite_data, 3+i, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 3+i, sprite);
|
||||
HuSprAttrSet(bootGrpId, 3+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 3+i, 288, 340);
|
||||
}
|
||||
for(i=0; i<5; i++) {
|
||||
sprite_data = HuSprAnimReadFile(TITLE_LANGUAGE_EN_ANM+i);
|
||||
|
|
@ -621,8 +621,8 @@ void ObjectSetup(void)
|
|||
// TODO PC
|
||||
OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo));
|
||||
OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0));
|
||||
HuAudSStreamPlay(20);
|
||||
#endif
|
||||
//HuAudSStreamPlay(20);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -744,10 +744,10 @@ void ObjectSetup(void)
|
|||
HuSprTPLvlSet(bootGrpId, 2, i / 10.0);
|
||||
}
|
||||
if (HuPadBtnDown[0] & PAD_BUTTON_START) {
|
||||
s32 ret = HuAudFXPlay(2092);
|
||||
if (ret < 0) {
|
||||
OSReport(">>>>>Error %d\n", ret);
|
||||
}
|
||||
//s32 ret = HuAudFXPlay(2092);
|
||||
//if (ret < 0) {
|
||||
// OSReport(">>>>>Error %d\n", ret);
|
||||
//}
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -279,13 +279,20 @@ BOOL HuDataGetAsyncStat(s32 status)
|
|||
|
||||
static void GetFileInfo(DataReadStat *read_stat, s32 file_num)
|
||||
{
|
||||
uintptr_t *temp_ptr;
|
||||
temp_ptr = (uintptr_t *)PTR_OFFSET(read_stat->dir, (file_num * 4))+1;
|
||||
u32 *temp_ptr;
|
||||
temp_ptr = (u32 *)PTR_OFFSET(read_stat->dir, (file_num * 4))+1;
|
||||
#ifdef TARGET_PC
|
||||
byteswap_u32(temp_ptr);
|
||||
#endif
|
||||
read_stat->file = PTR_OFFSET(read_stat->dir, *temp_ptr);
|
||||
temp_ptr = read_stat->file;
|
||||
read_stat->raw_len = *temp_ptr++;
|
||||
read_stat->comp_type = *temp_ptr++;
|
||||
read_stat->file = temp_ptr;
|
||||
#ifdef TARGET_PC
|
||||
byteswap_u32(&read_stat->raw_len);
|
||||
byteswap_u32(&read_stat->comp_type);
|
||||
#endif
|
||||
}
|
||||
|
||||
void *HuDataRead(s32 data_num)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,10 @@
|
|||
#include "string.h"
|
||||
#include "ctype.h"
|
||||
|
||||
#ifdef TARGET_PC
|
||||
#include "port/byteswap.h"
|
||||
#endif
|
||||
|
||||
#define AS_S16(field) (*((s16 *)&(field)))
|
||||
#define AS_U16(field) (*((u16 *)&(field)))
|
||||
|
||||
|
|
@ -117,11 +121,14 @@ static void FileLoad(void *data)
|
|||
fileptr = data;
|
||||
memcpy(&head, fileptr, sizeof(HsfHeader));
|
||||
memset(&Model, 0, sizeof(HsfData));
|
||||
NSymIndex = (void **)((u32)fileptr+head.symbol.ofs);
|
||||
StringTable = (char *)((u32)fileptr+head.string.ofs);
|
||||
ClusterTop = (HsfCluster *)((u32)fileptr+head.cluster.ofs);
|
||||
AttributeTop = (HsfAttribute *)((u32)fileptr+head.attribute.ofs);
|
||||
MaterialTop = (HsfMaterial *)((u32)fileptr+head.material.ofs);
|
||||
#ifdef TARGET_PC
|
||||
byteswap_hsfheader(&head);
|
||||
#endif
|
||||
NSymIndex = (void **)((uintptr_t)fileptr+head.symbol.ofs);
|
||||
StringTable = (char *)((uintptr_t)fileptr+head.string.ofs);
|
||||
ClusterTop = (HsfCluster *)((uintptr_t)fileptr+head.cluster.ofs);
|
||||
AttributeTop = (HsfAttribute *)((uintptr_t)fileptr + head.attribute.ofs);
|
||||
MaterialTop = (HsfMaterial *)((uintptr_t)fileptr + head.material.ofs);
|
||||
}
|
||||
|
||||
static HsfData *SetHsfModel(void)
|
||||
|
|
|
|||
|
|
@ -311,6 +311,37 @@ template <typename B> void bswap(B &base, AnimLayerData &obj)
|
|||
bswap_flat(base, obj.vtx, sizeof(obj.vtx) / sizeof(s16));
|
||||
}
|
||||
|
||||
template <typename B> void bswap(B &base, HsfSection &obj)
|
||||
{
|
||||
bswap(base, obj.ofs);
|
||||
bswap(base, obj.count);
|
||||
}
|
||||
|
||||
template <typename B> void bswap(B &base, HsfHeader &obj)
|
||||
{
|
||||
bswap(base, obj.scene);
|
||||
bswap(base, obj.color);
|
||||
bswap(base, obj.material);
|
||||
bswap(base, obj.attribute);
|
||||
bswap(base, obj.vertex);
|
||||
bswap(base, obj.normal);
|
||||
bswap(base, obj.st);
|
||||
bswap(base, obj.face);
|
||||
bswap(base, obj.object);
|
||||
bswap(base, obj.bitmap);
|
||||
bswap(base, obj.palette);
|
||||
bswap(base, obj.motion);
|
||||
bswap(base, obj.cenv);
|
||||
bswap(base, obj.skeleton);
|
||||
bswap(base, obj.part);
|
||||
bswap(base, obj.cluster);
|
||||
bswap(base, obj.shape);
|
||||
bswap(base, obj.mapAttr);
|
||||
bswap(base, obj.matrix);
|
||||
bswap(base, obj.symbol);
|
||||
bswap(base, obj.string);
|
||||
}
|
||||
|
||||
void byteswap_u32(u32 *src)
|
||||
{
|
||||
bswap(*src, *src);
|
||||
|
|
@ -362,3 +393,9 @@ void byteswap_animlayerdata(AnimLayerData *src)
|
|||
bswap(*src, *src);
|
||||
sVisitedPtrs.clear();
|
||||
}
|
||||
|
||||
void byteswap_hsfheader(HsfHeader *src)
|
||||
{
|
||||
bswap(*src, *src);
|
||||
sVisitedPtrs.clear();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue