1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-14 11:54:39 +00:00

T() macro loose ends 1 (#2563)

* more T() in debug_malloc.c graph.c z_actor.c malloc.c

* more T() in Zl2, Zl3

* T() diving_game, fire_rock

* T() girla

* more T() in heishi[124]

* T() in hs2, kakasi2, ru2

* format

* keaton

* Diving GO
This commit is contained in:
Dragorn421 2025-06-03 12:40:55 +02:00 committed by GitHub
parent 1627f8415b
commit 0c1b1231d3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 146 additions and 123 deletions

View file

@ -34,7 +34,7 @@ void DebugArena_CheckPointer(void* ptr, u32 size, const char* name, const char*
void* DebugArena_Malloc(u32 size) { void* DebugArena_Malloc(u32 size) {
void* ptr = __osMalloc(&sDebugArena, size); void* ptr = __osMalloc(&sDebugArena, size);
DEBUG_ARENA_CHECK_POINTER(ptr, size, "debug_malloc", "確保"); // "Secure" DEBUG_ARENA_CHECK_POINTER(ptr, size, "debug_malloc", T("確保", "Secure"));
return ptr; return ptr;
} }
@ -42,7 +42,7 @@ void* DebugArena_Malloc(u32 size) {
void* DebugArena_MallocDebug(u32 size, const char* file, int line) { void* DebugArena_MallocDebug(u32 size, const char* file, int line) {
void* ptr = __osMallocDebug(&sDebugArena, size, file, line); void* ptr = __osMallocDebug(&sDebugArena, size, file, line);
DEBUG_ARENA_CHECK_POINTER(ptr, size, "debug_malloc_DEBUG", "確保"); // "Secure" DEBUG_ARENA_CHECK_POINTER(ptr, size, "debug_malloc_DEBUG", T("確保", "Secure"));
return ptr; return ptr;
} }
#endif #endif
@ -50,7 +50,7 @@ void* DebugArena_MallocDebug(u32 size, const char* file, int line) {
void* DebugArena_MallocR(u32 size) { void* DebugArena_MallocR(u32 size) {
void* ptr = __osMallocR(&sDebugArena, size); void* ptr = __osMallocR(&sDebugArena, size);
DEBUG_ARENA_CHECK_POINTER(ptr, size, "debug_malloc_r", "確保"); // "Secure" DEBUG_ARENA_CHECK_POINTER(ptr, size, "debug_malloc_r", T("確保", "Secure"));
return ptr; return ptr;
} }
@ -58,21 +58,21 @@ void* DebugArena_MallocR(u32 size) {
void* DebugArena_MallocRDebug(u32 size, const char* file, int line) { void* DebugArena_MallocRDebug(u32 size, const char* file, int line) {
void* ptr = __osMallocRDebug(&sDebugArena, size, file, line); void* ptr = __osMallocRDebug(&sDebugArena, size, file, line);
DEBUG_ARENA_CHECK_POINTER(ptr, size, "debug_malloc_r_DEBUG", "確保"); // "Secure" DEBUG_ARENA_CHECK_POINTER(ptr, size, "debug_malloc_r_DEBUG", T("確保", "Secure"));
return ptr; return ptr;
} }
#endif #endif
void* DebugArena_Realloc(void* ptr, u32 newSize) { void* DebugArena_Realloc(void* ptr, u32 newSize) {
ptr = __osRealloc(&sDebugArena, ptr, newSize); ptr = __osRealloc(&sDebugArena, ptr, newSize);
DEBUG_ARENA_CHECK_POINTER(ptr, newSize, "debug_realloc", "再確保"); // "Re-securing" DEBUG_ARENA_CHECK_POINTER(ptr, newSize, "debug_realloc", T("再確保", "Re-secure"));
return ptr; return ptr;
} }
#if DEBUG_FEATURES #if DEBUG_FEATURES
void* DebugArena_ReallocDebug(void* ptr, u32 newSize, const char* file, int line) { void* DebugArena_ReallocDebug(void* ptr, u32 newSize, const char* file, int line) {
ptr = __osReallocDebug(&sDebugArena, ptr, newSize, file, line); ptr = __osReallocDebug(&sDebugArena, ptr, newSize, file, line);
DEBUG_ARENA_CHECK_POINTER(ptr, newSize, "debug_realloc_DEBUG", "再確保"); // "Re-securing" DEBUG_ARENA_CHECK_POINTER(ptr, newSize, "debug_realloc_DEBUG", T("再確保", "Re-secure"));
return ptr; return ptr;
} }
#endif #endif
@ -96,7 +96,7 @@ void* DebugArena_Calloc(u32 num, u32 size) {
bzero(ret, n); bzero(ret, n);
} }
DEBUG_ARENA_CHECK_POINTER(ret, n, "debug_calloc", "確保"); DEBUG_ARENA_CHECK_POINTER(ret, n, "debug_calloc", T("確保", "Secure"));
return ret; return ret;
} }

View file

@ -331,10 +331,10 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) {
#if DEBUG_FEATURES #if DEBUG_FEATURES
OPEN_DISPS(gfxCtx, "../graph.c", 966); OPEN_DISPS(gfxCtx, "../graph.c", 966);
gDPNoOpString(WORK_DISP++, "WORK_DISP 開始", 0); gDPNoOpString(WORK_DISP++, T("WORK_DISP 開始", "WORK_DISP start"), 0);
gDPNoOpString(POLY_OPA_DISP++, "POLY_OPA_DISP 開始", 0); gDPNoOpString(POLY_OPA_DISP++, T("POLY_OPA_DISP 開始", "POLY_OPA_DISP start"), 0);
gDPNoOpString(POLY_XLU_DISP++, "POLY_XLU_DISP 開始", 0); gDPNoOpString(POLY_XLU_DISP++, T("POLY_XLU_DISP 開始", "POLY_XLU_DISP start"), 0);
gDPNoOpString(OVERLAY_DISP++, "OVERLAY_DISP 開始", 0); gDPNoOpString(OVERLAY_DISP++, T("OVERLAY_DISP 開始", "OVERLAY_DISP start"), 0);
CLOSE_DISPS(gfxCtx, "../graph.c", 975); CLOSE_DISPS(gfxCtx, "../graph.c", 975);
#endif #endif
@ -345,10 +345,10 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) {
#if DEBUG_FEATURES #if DEBUG_FEATURES
OPEN_DISPS(gfxCtx, "../graph.c", 987); OPEN_DISPS(gfxCtx, "../graph.c", 987);
gDPNoOpString(WORK_DISP++, "WORK_DISP 終了", 0); gDPNoOpString(WORK_DISP++, T("WORK_DISP 終了", "WORK_DISP end"), 0);
gDPNoOpString(POLY_OPA_DISP++, "POLY_OPA_DISP 終了", 0); gDPNoOpString(POLY_OPA_DISP++, T("POLY_OPA_DISP 終了", "POLY_OPA_DISP end"), 0);
gDPNoOpString(POLY_XLU_DISP++, "POLY_XLU_DISP 終了", 0); gDPNoOpString(POLY_XLU_DISP++, T("POLY_XLU_DISP 終了", "POLY_XLU_DISP end"), 0);
gDPNoOpString(OVERLAY_DISP++, "OVERLAY_DISP 終了", 0); gDPNoOpString(OVERLAY_DISP++, T("OVERLAY_DISP 終了", "OVERLAY_DISP end"), 0);
CLOSE_DISPS(gfxCtx, "../graph.c", 996); CLOSE_DISPS(gfxCtx, "../graph.c", 996);
#endif #endif

View file

@ -2688,7 +2688,7 @@ void Actor_DrawLensActors(PlayState* play, s32 numInvisibleActors, Actor** invis
OPEN_DISPS(gfxCtx, "../z_actor.c", 6197); OPEN_DISPS(gfxCtx, "../z_actor.c", 6197);
gDPNoOpString(POLY_OPA_DISP++, "魔法のメガネ START", 0); // "Magic lens START" gDPNoOpString(POLY_OPA_DISP++, T("魔法のメガネ START", "Magic lens START"), 0);
gDPPipeSync(POLY_XLU_DISP++); gDPPipeSync(POLY_XLU_DISP++);
@ -2728,23 +2728,25 @@ void Actor_DrawLensActors(PlayState* play, s32 numInvisibleActors, Actor** invis
// The z-buffer will be updated where the mask is not fully transparent. // The z-buffer will be updated where the mask is not fully transparent.
Actor_DrawLensOverlay(gfxCtx); Actor_DrawLensOverlay(gfxCtx);
// "Magic lens invisible Actor display START" gDPNoOpString(POLY_OPA_DISP++,
gDPNoOpString(POLY_OPA_DISP++, "魔法のメガネ 見えないc表示 START", numInvisibleActors); T("魔法のメガネ 見えないc表示 START", "Magic lens invisible Actor display START"),
numInvisibleActors);
invisibleActor = &invisibleActors[0]; invisibleActor = &invisibleActors[0];
for (i = 0; i < numInvisibleActors; i++) { for (i = 0; i < numInvisibleActors; i++) {
// "Magic lens invisible Actor display" gDPNoOpString(POLY_OPA_DISP++, T("魔法のメガネ 見えないc表示", "Magic lens invisible Actor display"),
gDPNoOpString(POLY_OPA_DISP++, "魔法のメガネ 見えないc表示", i); i);
Actor_Draw(play, *(invisibleActor++)); Actor_Draw(play, *(invisibleActor++));
} }
// "Magic lens invisible Actor display END" gDPNoOpString(POLY_OPA_DISP++,
gDPNoOpString(POLY_OPA_DISP++, "魔法のメガネ 見えないc表示 END", numInvisibleActors); T("魔法のメガネ 見えないc表示 END", "Magic lens invisible Actor display END"),
numInvisibleActors);
if (play->roomCtx.curRoom.lensMode != LENS_MODE_SHOW_ACTORS) { if (play->roomCtx.curRoom.lensMode != LENS_MODE_SHOW_ACTORS) {
// Draw the lens overlay to the color frame buffer // Draw the lens overlay to the color frame buffer
gDPNoOpString(POLY_OPA_DISP++, "青い眼鏡(外側)", 0); // "Blue spectacles (exterior)" gDPNoOpString(POLY_OPA_DISP++, T("青い眼鏡(外側)", "Blue glasses (outside)"), 0);
gDPPipeSync(POLY_XLU_DISP++); gDPPipeSync(POLY_XLU_DISP++);
@ -2757,10 +2759,10 @@ void Actor_DrawLensActors(PlayState* play, s32 numInvisibleActors, Actor** invis
Actor_DrawLensOverlay(gfxCtx); Actor_DrawLensOverlay(gfxCtx);
gDPNoOpString(POLY_OPA_DISP++, "青い眼鏡(外側)", 1); // "Blue spectacles (exterior)" gDPNoOpString(POLY_OPA_DISP++, T("青い眼鏡(外側)", "Blue glasses (outside)"), 1);
} }
gDPNoOpString(POLY_OPA_DISP++, "魔法のメガネ END", 0); // "Magic lens END" gDPNoOpString(POLY_OPA_DISP++, T("魔法のメガネ END", "Magic lens END"), 0);
CLOSE_DISPS(gfxCtx, "../z_actor.c", 6284); CLOSE_DISPS(gfxCtx, "../z_actor.c", 6284);
} }

View file

@ -41,7 +41,7 @@ void* SystemArena_Malloc(u32 size) {
ptr = __osMalloc(&gSystemArena, size); ptr = __osMalloc(&gSystemArena, size);
RESTORE_INTERRUPTS(); RESTORE_INTERRUPTS();
SYSTEM_ARENA_CHECK_POINTER(ptr, size, "malloc", "確保"); // "Secure" SYSTEM_ARENA_CHECK_POINTER(ptr, size, "malloc", T("確保", "Secure"));
return ptr; return ptr;
} }
@ -54,7 +54,7 @@ void* SystemArena_MallocDebug(u32 size, const char* file, int line) {
ptr = __osMallocDebug(&gSystemArena, size, file, line); ptr = __osMallocDebug(&gSystemArena, size, file, line);
RESTORE_INTERRUPTS(); RESTORE_INTERRUPTS();
SYSTEM_ARENA_CHECK_POINTER(ptr, size, "malloc_DEBUG", "確保"); // "Secure" SYSTEM_ARENA_CHECK_POINTER(ptr, size, "malloc_DEBUG", T("確保", "Secure"));
return ptr; return ptr;
} }
#endif #endif
@ -67,7 +67,7 @@ void* SystemArena_MallocR(u32 size) {
ptr = __osMallocR(&gSystemArena, size); ptr = __osMallocR(&gSystemArena, size);
RESTORE_INTERRUPTS(); RESTORE_INTERRUPTS();
SYSTEM_ARENA_CHECK_POINTER(ptr, size, "malloc_r", "確保"); // "Secure" SYSTEM_ARENA_CHECK_POINTER(ptr, size, "malloc_r", T("確保", "Secure"));
return ptr; return ptr;
} }
@ -80,7 +80,7 @@ void* SystemArena_MallocRDebug(u32 size, const char* file, int line) {
ptr = __osMallocRDebug(&gSystemArena, size, file, line); ptr = __osMallocRDebug(&gSystemArena, size, file, line);
RESTORE_INTERRUPTS(); RESTORE_INTERRUPTS();
SYSTEM_ARENA_CHECK_POINTER(ptr, size, "malloc_r_DEBUG", "確保"); // "Secure" SYSTEM_ARENA_CHECK_POINTER(ptr, size, "malloc_r_DEBUG", T("確保", "Secure"));
return ptr; return ptr;
} }
#endif #endif
@ -92,7 +92,7 @@ void* SystemArena_Realloc(void* ptr, u32 newSize) {
ptr = __osRealloc(&gSystemArena, ptr, newSize); ptr = __osRealloc(&gSystemArena, ptr, newSize);
RESTORE_INTERRUPTS(); RESTORE_INTERRUPTS();
SYSTEM_ARENA_CHECK_POINTER(ptr, newSize, "realloc", "再確保"); // "Re-securing" SYSTEM_ARENA_CHECK_POINTER(ptr, newSize, "realloc", T("再確保", "Re-secure"));
return ptr; return ptr;
} }
@ -104,7 +104,7 @@ void* SystemArena_ReallocDebug(void* ptr, u32 newSize, const char* file, int lin
ptr = __osReallocDebug(&gSystemArena, ptr, newSize, file, line); ptr = __osReallocDebug(&gSystemArena, ptr, newSize, file, line);
RESTORE_INTERRUPTS(); RESTORE_INTERRUPTS();
SYSTEM_ARENA_CHECK_POINTER(ptr, newSize, "realloc_DEBUG", "再確保"); // "Re-securing" SYSTEM_ARENA_CHECK_POINTER(ptr, newSize, "realloc_DEBUG", T("再確保", "Re-secure"));
return ptr; return ptr;
} }
#endif #endif
@ -140,7 +140,7 @@ void* SystemArena_Calloc(u32 num, u32 size) {
bzero(ret, n); bzero(ret, n);
} }
SYSTEM_ARENA_CHECK_POINTER(ret, n, "calloc", "確保"); SYSTEM_ARENA_CHECK_POINTER(ret, n, "calloc", T("確保", "Secure"));
return ret; return ret;
} }

View file

@ -101,13 +101,13 @@ void EnDivingGame_Init(Actor* thisx, PlayState* play) {
SkelAnime_InitFlex(play, &this->skelAnime, &gZoraSkel, &gZoraIdleAnim, this->jointTable, this->morphTable, 20); SkelAnime_InitFlex(play, &this->skelAnime, &gZoraSkel, &gZoraIdleAnim, this->jointTable, this->morphTable, 20);
Collider_InitCylinder(play, &this->collider); Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 素もぐりGO ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 素もぐりGO ☆☆☆☆☆ \n", "☆☆☆☆☆ Diving GO ☆☆☆☆☆ \n") VT_RST);
this->actor.room = -1; this->actor.room = -1;
this->actor.scale.x = 0.01f; this->actor.scale.x = 0.01f;
this->actor.scale.y = 0.012999999f; this->actor.scale.y = 0.012999999f;
this->actor.scale.z = 0.0139999995f; this->actor.scale.z = 0.0139999995f;
if (D_809EF0B0) { if (D_809EF0B0) {
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ もういてる原 ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ もういてる原 ☆☆☆☆☆ \n", "☆☆☆☆☆ Original is already here ☆☆☆☆☆ \n") VT_RST);
this->unk_31F = 1; this->unk_31F = 1;
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
} else { } else {

View file

@ -270,7 +270,7 @@ void EnFireRock_SpawnMoreBrokenPieces(EnFireRock* this, PlayState* play) {
} }
spawnedFireRock->scale = this->scale - 0.01f; spawnedFireRock->scale = this->scale - 0.01f;
} else { } else {
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ イッパイデッス ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ イッパイデッス ☆☆☆☆☆ \n", "☆☆☆☆☆ It's full ☆☆☆☆☆ \n") VT_RST);
} }
} }
Actor_PlaySfx(&this->actor, NA_SE_EN_VALVAISA_ROCK); Actor_PlaySfx(&this->actor, NA_SE_EN_VALVAISA_ROCK);
@ -291,7 +291,7 @@ void FireRock_WaitSpawnRocksFromCeiling(EnFireRock* this, PlayState* play) {
if (spawnedFireRock != NULL) { if (spawnedFireRock != NULL) {
spawnedFireRock->timer = 10; spawnedFireRock->timer = 10;
} else { } else {
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ イッパイデッス ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ イッパイデッス ☆☆☆☆☆ \n", "☆☆☆☆☆ It's full ☆☆☆☆☆ \n") VT_RST);
} }
} }
this->playerNearby = 1; this->playerNearby = 1;

View file

@ -90,56 +90,56 @@ ActorProfile En_GirlA_Profile = {
#if DEBUG_FEATURES #if DEBUG_FEATURES
static char* sShopItemDescriptions[] = { static char* sShopItemDescriptions[] = {
"デクの実×5 ", // "Deku nut x5" T("デクの実×5 ", "Deku nuts x5 "),
"×30 ", // "Arrow x30" T("×30 ", "Arrows x30 "),
"×50 ", // "Arrow x50" T("×50 ", "Arrows x50 "),
"爆弾×5 ", // "bomb" T("爆弾×5 ", "Bombs x5 "),
"デクの実×10 ", // "Deku nut x10" T("デクの実×10 ", "Deku nuts x10 "),
"デクの棒 ", // "Deku stick" T("デクの棒 ", "Deku stick "),
"爆弾×10 ", // "Bomb x10" T("爆弾×10 ", "Bombs x10 "),
"さかな ", // "Fish" T("さかな ", "Fish "),
"赤クスリ ", // "Red medicine" T("赤クスリ ", "Red medicine "),
"緑クスリ ", // "Green medicine" T("緑クスリ ", "Green medicine"),
"青クスリ ", // "Blue medicine" T("青クスリ ", "Blue medicine "),
"巨人のナイフ ", // "Giant knife" T("巨人のナイフ ", "Giant's knife "),
"ハイリアの盾 ", // "Hyria Shield" T("ハイリアの盾 ", "Hylian shield "),
"デクの盾 ", // "Deku Shield" T("デクの盾 ", "Deku shield "),
"ゴロンの服 ", // "Goron's clothes" T("ゴロンの服 ", "Goron clothing"),
"ゾ─ラの服 ", // "Zora's clothes" T("ゾ─ラの服 ", "Zora's clothes"),
"回復のハート ", // "Heart of recovery" T("回復のハート ", "Heart of recovery"),
"ロンロン牛乳 ", // "Ron Ron milk" T("ロンロン牛乳 ", "Lon Lon milk "),
"鶏の卵 ", // "Chicken egg" T("鶏の卵 ", "Chicken egg "),
"インゴー牛乳 ", // "Ingo milk" T("インゴー牛乳 ", "Ingo milk "),
"インゴー卵 ", // "Ingo egg" T("インゴー卵 ", "Ingo egg "),
"もだえ石 ", // "Modae stone" T("もだえ石 ", "Writhing stone"),
"大人の財布 ", // "Adult wallet" T("大人の財布 ", "Adult wallet "),
"ハートの欠片 ", // "Heart fragment" T("ハートの欠片 ", "Piece of heart"),
"ボムチュウ ", // "Bombchu" T("ボムチュウ ", "Bombchu "),
"ボムチュウ ", // "Bombchu" T("ボムチュウ ", "Bombchu "),
"ボムチュウ ", // "Bombchu" T("ボムチュウ ", "Bombchu "),
"ボムチュウ ", // "Bombchu" T("ボムチュウ ", "Bombchu "),
"ボムチュウ ", // "Bombchu" T("ボムチュウ ", "Bombchu "),
"デクのタネ ", // "Deku seeds" T("デクのタネ ", "Deku seeds "),
"キータンのお面", // "Ketan's mask" T("キータンのお面", "Keaton mask "),
"こわそなお面 ", // "Scary face" T("こわそなお面 ", "Scary mask "),
"ドクロのお面 ", // "Skull mask" T("ドクロのお面 ", "Skull mask "),
"ウサギずきん ", // "Rabbit hood" T("ウサギずきん ", "Rabbit hood "),
"まことの仮面 ", // "True mask" T("まことの仮面 ", "True mask "),
"ゾーラのお面 ", // "Zora's mask" T("ゾーラのお面 ", "Zora's mask "),
"ゴロンのお面 ", // "Goron's mask" T("ゴロンのお面 ", "Goron mask "),
"ゲルドのお面 ", // "Gerd's mask" T("ゲルドのお面 ", "Gerudo mask "),
"", "",
"", // "Flame" T("", "Flame "),
"", // "Bugs" T("", "Insect "),
"チョウチョ ", // "Butterfly" T("チョウチョ ", "Butterfly "),
"ポウ ", // "Poe" T("ポウ ", "Poe "),
"妖精の魂 ", // "Fairy soul" T("妖精の魂 ", "Fairy soul "),
"×10 ", // "Arrow" T("×10 ", "Arrows x10 "),
"爆弾×20 ", // "Bomb x20" T("爆弾×20 ", "Bombs x20 "),
"爆弾×30 ", // "Bomb x30" T("爆弾×30 ", "Bombs x30 "),
"爆弾×5 ", // "Bomb x5" T("爆弾×5 ", "Bombs x5 "),
"赤クスリ ", // "Red medicine" T("赤クスリ ", "Red medicine "),
"赤クスリ " // "Red medicine" T("赤クスリ ", "Red medicine "),
}; };
#endif #endif

View file

@ -207,11 +207,11 @@ void EnHeishi1_Walk(EnHeishi1* this, PlayState* play) {
Math_ApproachF(&this->headAngle, this->headAngleTarget, this->headTurnSpeedScale, this->headTurnSpeedMax); Math_ApproachF(&this->headAngle, this->headAngleTarget, this->headTurnSpeedScale, this->headTurnSpeedMax);
if (DEBUG_FEATURES && (this->path == BREG(1)) && (BREG(0) != 0)) { if (DEBUG_FEATURES && (this->path == BREG(1)) && (BREG(0) != 0)) {
PRINTF(VT_FGCOL(RED) " 種類 %d\n" VT_RST, this->path); PRINTF(VT_FGCOL(RED) T(" 種類 %d\n", " Type %d\n") VT_RST, this->path);
PRINTF(VT_FGCOL(RED) " ぱす %d\n" VT_RST, this->waypoint); PRINTF(VT_FGCOL(RED) T(" ぱす %d\n", " Path %d\n") VT_RST, this->waypoint);
PRINTF(VT_FGCOL(RED) " 反転 %d\n" VT_RST, this->bodyTurnSpeed); PRINTF(VT_FGCOL(RED) T(" 反転 %d\n", " Turning around %d\n") VT_RST, this->bodyTurnSpeed);
PRINTF(VT_FGCOL(RED) " 時間 %d\n" VT_RST, this->waypointTimer); PRINTF(VT_FGCOL(RED) T(" 時間 %d\n", " Time %d\n") VT_RST, this->waypointTimer);
PRINTF(VT_FGCOL(RED) " 点座 %d\n" VT_RST, path->count); PRINTF(VT_FGCOL(RED) T(" 点座 %d\n", " Tenza %d\n") VT_RST, path->count);
PRINTF("\n\n"); PRINTF("\n\n");
} }
@ -325,10 +325,10 @@ void EnHeishi1_Wait(EnHeishi1* this, PlayState* play) {
this->headTurnSpeedMax + this->headTurnSpeedMax); this->headTurnSpeedMax + this->headTurnSpeedMax);
if (DEBUG_FEATURES && (this->path == BREG(1)) && (BREG(0) != 0)) { if (DEBUG_FEATURES && (this->path == BREG(1)) && (BREG(0) != 0)) {
PRINTF(VT_FGCOL(GREEN) " 種類 %d\n" VT_RST, this->path); PRINTF(VT_FGCOL(GREEN) T(" 種類 %d\n", " Type %d\n") VT_RST, this->path);
PRINTF(VT_FGCOL(GREEN) " ぱす %d\n" VT_RST, this->waypoint); PRINTF(VT_FGCOL(GREEN) T(" ぱす %d\n", " Path %d\n") VT_RST, this->waypoint);
PRINTF(VT_FGCOL(GREEN) " 反転 %d\n" VT_RST, this->bodyTurnSpeed); PRINTF(VT_FGCOL(GREEN) T(" 反転 %d\n", " Turning around %d\n") VT_RST, this->bodyTurnSpeed);
PRINTF(VT_FGCOL(GREEN) " 時間 %d\n" VT_RST, this->waypointTimer); PRINTF(VT_FGCOL(GREEN) T(" 時間 %d\n", " Time %d\n") VT_RST, this->waypointTimer);
PRINTF("\n\n"); PRINTF("\n\n");
} }
} }

View file

@ -113,8 +113,8 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) {
} else { } else {
PRINTF("\n\n"); PRINTF("\n\n");
// "No, I'm completely disappointed" (message for when shooting guard window in courtyard) PRINTF(VT_FGCOL(MAGENTA)
PRINTF(VT_FGCOL(MAGENTA) " ☆☆☆☆☆ いやー ついうっかり ☆☆☆☆☆ \n" VT_RST); T(" ☆☆☆☆☆ いやー ついうっかり ☆☆☆☆☆ \n", " ☆☆☆☆☆ Oh, no, I was just careless. ☆☆☆☆☆ \n") VT_RST);
Actor_SetScale(&this->actor, 0.02f); Actor_SetScale(&this->actor, 0.02f);

View file

@ -4,6 +4,7 @@
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "printf.h" #include "printf.h"
#include "terminal.h" #include "terminal.h"
#include "translation.h"
#include "z64face_reaction.h" #include "z64face_reaction.h"
#include "z64play.h" #include "z64play.h"
#include "z64player.h" #include "z64player.h"
@ -104,9 +105,15 @@ void EnHeishi4_Init(Actor* thisx, PlayState* play) {
} }
this->unk_27C = PARAMS_GET_U(thisx->params, 8, 8); this->unk_27C = PARAMS_GET_U(thisx->params, 8, 8);
PRINTF("\n\n"); PRINTF("\n\n");
PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 兵士2セット完了! ☆☆☆☆☆ %d\n" VT_RST, thisx->params); PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 兵士2セット完了! ☆☆☆☆☆ %d\n", " ☆☆☆☆☆ Soldier Set 2 Completed! ☆☆☆☆☆ %d\n")
PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ 識別完了!\t ☆☆☆☆☆ %d\n" VT_RST, this->type); VT_RST,
PRINTF(VT_FGCOL(MAGENTA) " ☆☆☆☆☆ メッセージ完了! ☆☆☆☆☆ %x\n\n" VT_RST, PARAMS_GET_U(thisx->params, 8, 4)); thisx->params);
PRINTF(VT_FGCOL(YELLOW) T(" ☆☆☆☆☆ 識別完了!\t ☆☆☆☆☆ %d\n", " ☆☆☆☆☆ Identification Completed!\t ☆☆☆☆☆ %d\n")
VT_RST,
this->type);
PRINTF(VT_FGCOL(MAGENTA) T(" ☆☆☆☆☆ メッセージ完了! ☆☆☆☆☆ %x\n\n", " ☆☆☆☆☆ Message completed! ☆☆☆☆☆ %x\n\n")
VT_RST,
PARAMS_GET_U(thisx->params, 8, 4));
PRINTF("\n\n"); PRINTF("\n\n");
} }
@ -176,7 +183,7 @@ void func_80A56544(EnHeishi4* this, PlayState* play) {
Animation_Change(&this->skelAnime, &gEnHeishiIdleAnim, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, -10.0f); Animation_Change(&this->skelAnime, &gEnHeishiIdleAnim, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, -10.0f);
if (LINK_AGE_IN_YEARS != YEARS_CHILD) { if (LINK_AGE_IN_YEARS != YEARS_CHILD) {
PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ ぎゃぁ!オトナだー ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ ぎゃぁ!オトナだー ☆☆☆☆☆ \n", " ☆☆☆☆☆ Oh, no! I'm an adult! ☆☆☆☆☆ \n") VT_RST);
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
} else { } else {
this->actionFunc = func_80A56614; this->actionFunc = func_80A56614;
@ -223,7 +230,8 @@ void func_80A5673C(EnHeishi4* this, PlayState* play) {
f32 frames; f32 frames;
if (GET_EVENTCHKINF(EVENTCHKINF_45)) { if (GET_EVENTCHKINF(EVENTCHKINF_45)) {
PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ マスターソード祝入手! ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(YELLOW) T(" ☆☆☆☆☆ マスターソード祝入手! ☆☆☆☆☆ \n",
" ☆☆☆☆☆ Congratulations on obtaining the Master Sword! ☆☆☆☆☆ \n") VT_RST);
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
} }
@ -236,11 +244,11 @@ void func_80A5673C(EnHeishi4* this, PlayState* play) {
this->actor.textId = 0x7007; this->actor.textId = 0x7007;
this->unk_282 = TEXT_STATE_EVENT; this->unk_282 = TEXT_STATE_EVENT;
this->unk_284 = 1; this->unk_284 = 1;
PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ デモ開始! ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(YELLOW) T(" ☆☆☆☆☆ デモ開始! ☆☆☆☆☆ \n", " ☆☆☆☆☆ Demo begins! ☆☆☆☆☆ \n") VT_RST);
} else { } else {
this->actor.textId = 0x7008; this->actor.textId = 0x7008;
this->unk_282 = TEXT_STATE_DONE; this->unk_282 = TEXT_STATE_DONE;
PRINTF(VT_FGCOL(BLUE) " ☆☆☆☆☆ 返事なし ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(BLUE) T(" ☆☆☆☆☆ 返事なし ☆☆☆☆☆ \n", " ☆☆☆☆☆ No reply ☆☆☆☆☆ \n") VT_RST);
} }
this->actionFunc = func_80A56874; this->actionFunc = func_80A56874;
} else { } else {

View file

@ -11,6 +11,7 @@
#include "printf.h" #include "printf.h"
#include "sys_matrix.h" #include "sys_matrix.h"
#include "terminal.h" #include "terminal.h"
#include "translation.h"
#include "z_lib.h" #include "z_lib.h"
#include "z64face_reaction.h" #include "z64face_reaction.h"
#include "z64play.h" #include "z64play.h"
@ -69,7 +70,7 @@ void EnHs2_Init(Actor* thisx, PlayState* play) {
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actor.colChkInfo.mass = MASS_IMMOVABLE;
Actor_SetScale(&this->actor, 0.01f); Actor_SetScale(&this->actor, 0.01f);
PRINTF(VT_FGCOL(CYAN) " ヒヨコの店(子人の時) \n" VT_RST); PRINTF(VT_FGCOL(CYAN) T(" ヒヨコの店(子人の時) \n", " Chick's Shop (Children's Time) \n") VT_RST);
this->actionFunc = func_80A6F1A4; this->actionFunc = func_80A6F1A4;
this->unk_2A8 = 0; this->unk_2A8 = 0;
this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actor.attentionRangeType = ATTENTION_RANGE_6;

View file

@ -146,7 +146,8 @@ void func_80A90264(EnKakasi2* this, PlayState* play) {
Flags_SetSwitch(play, this->switchFlag); Flags_SetSwitch(play, this->switchFlag);
} }
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ SAVE 終了 ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ SAVE 終了 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ SAVE finished ☆☆☆☆☆ %d\n") VT_RST,
this->switchFlag);
this->actionFunc = func_80A904D8; this->actionFunc = func_80A904D8;
} else if ((this->actor.xzDistToPlayer < this->maxSpawnDistance.x) && } else if ((this->actor.xzDistToPlayer < this->maxSpawnDistance.x) &&
(fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < this->maxSpawnDistance.y) && (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < this->maxSpawnDistance.y) &&
@ -157,7 +158,8 @@ void func_80A90264(EnKakasi2* this, PlayState* play) {
if (this->switchFlag >= 0) { if (this->switchFlag >= 0) {
Flags_SetSwitch(play, this->switchFlag); Flags_SetSwitch(play, this->switchFlag);
} }
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ SAVE 終了 ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ SAVE 終了 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ SAVE finished ☆☆☆☆☆ %d\n") VT_RST,
this->switchFlag);
play->msgCtx.ocarinaMode = OCARINA_MODE_04; play->msgCtx.ocarinaMode = OCARINA_MODE_04;
this->actor.draw = func_80A90948; this->actor.draw = func_80A90948;
Collider_InitCylinder(play, &this->collider); Collider_InitCylinder(play, &this->collider);

View file

@ -835,13 +835,11 @@ void EnRu2_DialogCameraHandler(EnRu2* this, PlayState* play) {
if (dialogState == TEXT_STATE_DONE_FADING) { if (dialogState == TEXT_STATE_DONE_FADING) {
if (this->lastDialogState != TEXT_STATE_DONE_FADING) { if (this->lastDialogState != TEXT_STATE_DONE_FADING) {
// "I'm Komatsu!" (cinema scene dev) PRINTF(T("おれが小松だ! \n", "I'm Komatsu! \n")); // (cinema scene dev)
PRINTF("おれが小松だ! \n");
this->textboxCount++; this->textboxCount++;
if (this->textboxCount % 6 == 3) { if (this->textboxCount % 6 == 3) {
player = GET_PLAYER(play); player = GET_PLAYER(play);
// "uorya-!" (screeming sound) PRINTF(T("うおりゃー! \n", "uorya-! \n")); // (screaming sound)
PRINTF("うおりゃー! \n");
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play)); Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
player->actor.world.pos.x = 820.0f; player->actor.world.pos.x = 820.0f;
player->actor.world.pos.y = 0.0f; player->actor.world.pos.y = 0.0f;

View file

@ -57,7 +57,7 @@ void EnTakaraMan_Init(Actor* thisx, PlayState* play) {
if (sTakaraIsInitialized) { if (sTakaraIsInitialized) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ もういてる原 ☆☆☆☆☆ \n", "☆☆☆☆☆ Already initialized ☆☆☆☆☆ \n") VT_RST); PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ もういてる原 ☆☆☆☆☆ \n", "☆☆☆☆☆ Original is already here ☆☆☆☆☆ \n") VT_RST);
return; return;
} }

View file

@ -1603,7 +1603,8 @@ void func_80B52114(EnZl2* this, PlayState* play) {
break; break;
#endif #endif
default: default:
PRINTF(VT_FGCOL(RED) " En_Oa2 の arg_data がおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); PRINTF(VT_FGCOL(RED) T(" En_Oa2 の arg_data がおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n",
" En_Oa2 arg_data is wrong!!!!!!!!!!!!!!!!!!!!!!!!!\n") VT_RST);
func_80B4FD90(this, play); func_80B4FD90(this, play);
} }
} }
@ -1616,7 +1617,8 @@ void func_80B521A0(EnZl2* this, PlayState* play) {
#if DEBUG_FEATURES #if DEBUG_FEATURES
if (objectSlot < 0) { if (objectSlot < 0) {
PRINTF(VT_FGCOL(RED) "En_Zl2_main_bankアニメーションのバンクを読めない!!!!!!!!!!!!\n" VT_RST); PRINTF(VT_FGCOL(RED) T("En_Zl2_main_bankアニメーションのバンクを読めない!!!!!!!!!!!!\n",
"En_Zl2_main_bank Can't read animation bank!!!!!!!!!!!!\n") VT_RST);
return; return;
} }
#endif #endif
@ -1665,7 +1667,8 @@ s32 EnZl2_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
if (this->overrideLimbDrawConfig < 0 || this->overrideLimbDrawConfig > 0 || if (this->overrideLimbDrawConfig < 0 || this->overrideLimbDrawConfig > 0 ||
sOverrideLimbDrawFuncs[this->overrideLimbDrawConfig] == NULL) { sOverrideLimbDrawFuncs[this->overrideLimbDrawConfig] == NULL) {
PRINTF(VT_FGCOL(RED) "描画前処理モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); PRINTF(VT_FGCOL(RED) T("描画前処理モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"The pre-drawing mode is wrong!!!!!!!!!!!!!!!!!!!!!!!!!\n") VT_RST);
return 0; return 0;
} }
return sOverrideLimbDrawFuncs[this->overrideLimbDrawConfig](play, limbIndex, dList, pos, rot, thisx, gfx); return sOverrideLimbDrawFuncs[this->overrideLimbDrawConfig](play, limbIndex, dList, pos, rot, thisx, gfx);

View file

@ -813,7 +813,8 @@ void func_80B54F18(EnZl3* this, PlayState* play) {
} }
void func_80B54FB4(EnZl3* this, PlayState* play) { void func_80B54FB4(EnZl3* this, PlayState* play) {
PRINTF("ゼルダ姫のEn_Zl3_Actor_inFinal_Init通すよ!!!!!!!!!!!!!!!!!!!!!!!!!\n"); PRINTF(T("ゼルダ姫のEn_Zl3_Actor_inFinal_Init通すよ!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"I'm going through Princess Zelda's En_Zl3_Actor_inFinal_Init!!!!!!!!!!!!!!!!!!!!!!!!!\n"));
func_80B54E14(this, &gZelda2Anime2Anim_008AD0, 0, 0.0f, 0); func_80B54E14(this, &gZelda2Anime2Anim_008AD0, 0, 0.0f, 0);
EnZl3_setEyeIndex(this, 4); EnZl3_setEyeIndex(this, 4);
EnZl3_setMouthIndex(this, 2); EnZl3_setMouthIndex(this, 2);
@ -823,7 +824,8 @@ void func_80B54FB4(EnZl3* this, PlayState* play) {
this->actor.shape.rot.z = 0; this->actor.shape.rot.z = 0;
this->unk_3C4 = this->actor.world.rot.z; this->unk_3C4 = this->actor.world.rot.z;
this->actor.world.rot.z = this->actor.shape.rot.z; this->actor.world.rot.z = this->actor.shape.rot.z;
PRINTF("ゼルダ姫のEn_Zl3_Actor_inFinal_Initは通った!!!!!!!!!!!!!!!!!!!!!!!!!\n"); PRINTF(T("ゼルダ姫のEn_Zl3_Actor_inFinal_Initは通った!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"Princess Zelda's En_Zl3_Actor_inFinal_Init passed!!!!!!!!!!!!!!!!!!!!!!!!!\n"));
} }
void func_80B55054(EnZl3* this) { void func_80B55054(EnZl3* this) {
@ -1028,11 +1030,13 @@ void func_80B5572C(EnZl3* this, PlayState* play) {
} }
void func_80B55780(EnZl3* this, PlayState* play) { void func_80B55780(EnZl3* this, PlayState* play) {
PRINTF("ゼルダ姫のEn_Zl3_Actor_inFinal2_Init通すよ!!!!!!!!!!!!!!!!!!!!!!!!!\n"); PRINTF(T("ゼルダ姫のEn_Zl3_Actor_inFinal2_Init通すよ!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"I'm going through Princess Zelda's En_Zl3_Actor_inFinal2_Init!!!!!!!!!!!!!!!!!!!!!!!!!\n"));
func_80B54E14(this, &gZelda2Anime2Anim_005A0C, 0, 0.0f, 0); func_80B54E14(this, &gZelda2Anime2Anim_005A0C, 0, 0.0f, 0);
this->action = 7; this->action = 7;
this->drawConfig = 1; this->drawConfig = 1;
PRINTF("ゼルダ姫のEn_Zl3_Actor_inFinal2_Initは通った!!!!!!!!!!!!!!!!!!!!!!!!!\n"); PRINTF(T("ゼルダ姫のEn_Zl3_Actor_inFinal2_Initは通った!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"Princess Zelda's En_Zl3_Actor_inFinal2_Init passed!!!!!!!!!!!!!!!!!!!!!!!!!\n"));
EnZl3_setMouthIndex(this, 1); EnZl3_setMouthIndex(this, 1);
this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
} }
@ -2660,7 +2664,8 @@ void func_80B59B6C(EnZl3* this, PlayState* play) {
func_80B59828(this, play); func_80B59828(this, play);
break; break;
default: default:
PRINTF(VT_FGCOL(RED) " En_Oa3 の arg_data がおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); PRINTF(VT_FGCOL(RED) T(" En_Oa3 の arg_data がおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n",
" En_Oa3 arg_data is wrong!!!!!!!!!!!!!!!!!!!!!!!!!\n") VT_RST);
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
} }
} }
@ -2673,7 +2678,8 @@ void func_80B59DB8(EnZl3* this, PlayState* play) {
#if DEBUG_FEATURES #if DEBUG_FEATURES
if (objectSlot < 0) { if (objectSlot < 0) {
PRINTF(VT_FGCOL(RED) "En_Zl3_main_bankアニメーションのバンクを読めない!!!!!!!!!!!!\n" VT_RST); PRINTF(VT_FGCOL(RED) T("En_Zl3_main_bankアニメーションのバンクを読めない!!!!!!!!!!!!\n",
"En_Zl3_main_bank Can't read animation bank!!!!!!!!!!!!\n") VT_RST);
return; return;
} }
#endif #endif
@ -2710,7 +2716,8 @@ void EnZl3_Init(Actor* thisx, PlayState* play) {
ActorShape* shape = &this->actor.shape; ActorShape* shape = &this->actor.shape;
s32 pad; s32 pad;
PRINTF("ゼルダ姫のEn_Zl3_Actor_ct通すよ!!!!!!!!!!!!!!!!!!!!!!!!!\n"); PRINTF(T("ゼルダ姫のEn_Zl3_Actor_ct通すよ!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"I'm going through Princess Zelda's En_Zl3_Actor_ct!!!!!!!!!!!!!!!!!!!!!!!!!\n"));
ActorShape_Init(shape, 0.0f, ActorShadow_DrawCircle, 30.0f); ActorShape_Init(shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
shape->shadowAlpha = 0; shape->shadowAlpha = 0;
func_80B533B0(thisx, play); func_80B533B0(thisx, play);
@ -2725,7 +2732,8 @@ void EnZl3_Init(Actor* thisx, PlayState* play) {
break; break;
} }
PRINTF("ゼルダ姫のEn_Zl3_Actor_ctは通った!!!!!!!!!!!!!!!!!!!!!!!!!\n"); PRINTF(T("ゼルダ姫のEn_Zl3_Actor_ctは通った!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"Princess Zelda's En_Zl3_Actor_ct passed!!!!!!!!!!!!!!!!!!!!!!!!!\n"));
} }
static OverrideLimbDraw sOverrideLimbDrawFuncs[] = { static OverrideLimbDraw sOverrideLimbDrawFuncs[] = {
@ -2739,7 +2747,8 @@ s32 EnZl3_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
if (this->unk_308 < 0 || this->unk_308 >= ARRAY_COUNT(sOverrideLimbDrawFuncs) || if (this->unk_308 < 0 || this->unk_308 >= ARRAY_COUNT(sOverrideLimbDrawFuncs) ||
sOverrideLimbDrawFuncs[this->unk_308] == NULL) { sOverrideLimbDrawFuncs[this->unk_308] == NULL) {
PRINTF(VT_FGCOL(RED) "描画前処理モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); PRINTF(VT_FGCOL(RED) T("描画前処理モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"The pre-drawing mode is wrong!!!!!!!!!!!!!!!!!!!!!!!!!\n") VT_RST);
return 0; return 0;
} }
return sOverrideLimbDrawFuncs[this->unk_308](play, limbIndex, dList, pos, rot, thisx, gfx); return sOverrideLimbDrawFuncs[this->unk_308](play, limbIndex, dList, pos, rot, thisx, gfx);