From a399f90f9a458042ccde1dd599122774b6929241 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 27 May 2025 17:19:57 +0200 Subject: [PATCH 1/5] [assets] Sort gkeep resources by offset (#2550) --- assets/xml/objects/gameplay_keep.xml | 2 +- assets/xml/objects/gameplay_keep_pal.xml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml index 1a1077f038..2555cf68dc 100644 --- a/assets/xml/objects/gameplay_keep.xml +++ b/assets/xml/objects/gameplay_keep.xml @@ -709,10 +709,10 @@ - + diff --git a/assets/xml/objects/gameplay_keep_pal.xml b/assets/xml/objects/gameplay_keep_pal.xml index 92a7bb06e0..90bf296c85 100644 --- a/assets/xml/objects/gameplay_keep_pal.xml +++ b/assets/xml/objects/gameplay_keep_pal.xml @@ -697,16 +697,16 @@ - - + + - + @@ -841,9 +841,9 @@ - + @@ -898,8 +898,8 @@ - + From 91e9553ee5a3fb1aced50ca8a01b4a27f73a0874 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 27 May 2025 17:41:51 +0200 Subject: [PATCH 2/5] [assets system] Fix fusing resource buffer markers (#2548) --- tools/assets/extract/extase/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/assets/extract/extase/__init__.py b/tools/assets/extract/extase/__init__.py index d399882039..527a187a72 100644 --- a/tools/assets/extract/extase/__init__.py +++ b/tools/assets/extract/extase/__init__.py @@ -436,8 +436,8 @@ class File: resource_buffer_markers[i_start:i_end] = [ ResourceBufferMarker( fused[0].name.removesuffix("_fused_") + "_fused_", # TODO - fused[0].file_start, - fused[-1].file_end, + min(map(lambda _f: _f.file_start, fused)), + max(map(lambda _f: _f.file_end, fused)), users, ) ] From 1eaae98ed368b6de423e943a3fec45a8aee85692 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 27 May 2025 18:00:25 +0200 Subject: [PATCH 3/5] T() macro in overlays 4 (#2533) * T() macro in various overlays * revert problematic T() in mir_ray --- src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c | 7 ++++--- src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c | 7 +++++-- src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c | 9 +++++---- src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c | 4 ++-- src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c | 5 +++-- src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c | 7 +++---- src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c | 5 +++-- .../effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c | 3 ++- .../ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c | 3 ++- .../effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c | 4 +++- .../ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c | 3 ++- .../ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c | 4 +++- .../effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c | 6 ++++-- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 12 +++++++----- 14 files changed, 48 insertions(+), 31 deletions(-) diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index d422af550e..9eac9a59f6 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -13,6 +13,7 @@ #include "sys_math.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "versions.h" #include "z_lib.h" #include "z64audio.h" @@ -547,7 +548,7 @@ void DemoEffect_WaitForObject(DemoEffect* this, PlayState* play) { this->actor.draw = this->initDrawFunc; this->updateFunc = this->initUpdateFunc; - PRINTF(VT_FGCOL(CYAN) " 転送終了 move_wait " VT_RST); + PRINTF(VT_FGCOL(CYAN) T(" 転送終了 move_wait ", " Transfer completed move_wait ") VT_RST); } } @@ -705,12 +706,12 @@ void DemoEffect_InitTimeWarp(DemoEffect* this, PlayState* play) { SkelCurve_SetAnim(&this->skelCurve, &gTimeWarpAnim, 1.0f, 59.0f, 59.0f, 0.0f); SkelCurve_Update(play, &this->skelCurve); this->updateFunc = DemoEffect_UpdateTimeWarpReturnFromChamberOfSages; - PRINTF(VT_FGCOL(CYAN) " 縮むバージョン \n" VT_RST); + PRINTF(VT_FGCOL(CYAN) T(" 縮むバージョン \n", " Shrinking version \n") VT_RST); } else { SkelCurve_SetAnim(&this->skelCurve, &gTimeWarpAnim, 1.0f, 59.0f, 1.0f, 1.0f); SkelCurve_Update(play, &this->skelCurve); this->updateFunc = DemoEffect_UpdateTimeWarpPullMasterSword; - PRINTF(VT_FGCOL(CYAN) " 通常 バージョン \n" VT_RST); + PRINTF(VT_FGCOL(CYAN) T(" 通常 バージョン \n", " Normal version \n") VT_RST); } } diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c index dc0f0cb92e..1ec17157c9 100644 --- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c +++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c @@ -9,6 +9,7 @@ #include "sequence.h" #include "sfx.h" #include "sys_matrix.h" +#include "translation.h" #include "z_lib.h" #include "z64light.h" #include "z64play.h" @@ -509,7 +510,9 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) { this->warpTimer++; if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == 0xFFEF) { - PRINTF("\n\n\nじかんがきたからおーしまい fade_direction=[%d]", play->transitionTrigger, TRANS_TRIGGER_START); + PRINTF(T("\n\n\nじかんがきたからおーしまい fade_direction=[%d]", + "\n\n\nThe time has come, so it's over. fade_direction=[%d]"), + play->transitionTrigger, TRANS_TRIGGER_START); if (play->sceneId == SCENE_DODONGOS_CAVERN_BOSS) { if (!Flags_GetEventChkInf(EVENTCHKINF_25)) { @@ -536,7 +539,7 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) { play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0; gSaveContext.nextCutsceneIndex = 0; } - PRINTF("\n\n\nおわりおわり"); + PRINTF(T("\n\n\nおわりおわり", "\n\n\nThe end The end")); play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE_SLOW; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; diff --git a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c index 22c96a08d4..1c74a38432 100644 --- a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c +++ b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c @@ -14,6 +14,7 @@ #include "regs.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z64play.h" #include "z64player.h" @@ -88,12 +89,12 @@ s32 ElfMsg_KillCheck(ElfMsg* this, PlayState* play) { void ElfMsg_Init(Actor* thisx, PlayState* play) { ElfMsg* this = (ElfMsg*)thisx; - // "Conditions for Elf Tag disappearing" - PRINTF(VT_FGCOL(CYAN) "\nエルフ タグ 消える条件 %d" VT_RST "\n", PARAMS_GET_U(thisx->params, 8, 6)); + PRINTF(VT_FGCOL(CYAN) T("\nエルフ タグ 消える条件 %d", "\nConditions for Elf Tag disappearing %d") VT_RST "\n", + PARAMS_GET_U(thisx->params, 8, 6)); PRINTF(VT_FGCOL(CYAN) "\nthisx->shape.angle.sy = %d\n" VT_RST, thisx->shape.rot.y); if (thisx->shape.rot.y >= 0x41) { - // "Conditions for Elf Tag appearing" - PRINTF(VT_FGCOL(CYAN) "\nエルフ タグ 出現条件 %d" VT_RST "\n", thisx->shape.rot.y - 0x41); + PRINTF(VT_FGCOL(CYAN) T("\nエルフ タグ 出現条件 %d", "\nConditions for Elf Tag appearing %d") VT_RST "\n", + thisx->shape.rot.y - 0x41); } if (!ElfMsg_KillCheck(this, play)) { diff --git a/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c b/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c index 57761244ba..2dca261b93 100644 --- a/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c +++ b/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c @@ -12,6 +12,7 @@ #include "gfx_setupdl.h" #include "printf.h" #include "sfx.h" +#include "translation.h" #include "z64curve.h" #include "z64play.h" #include "z64player.h" @@ -56,8 +57,7 @@ void MagicWind_Init(Actor* thisx, PlayState* play) { Player* player = GET_PLAYER(play); if (!SkelCurve_Init(play, &this->skelCurve, &sSkel, &sAnim)) { - // "Magic_Wind_Actor_ct (): Construct failed" - PRINTF("Magic_Wind_Actor_ct():コンストラクト失敗\n"); + PRINTF(T("Magic_Wind_Actor_ct():コンストラクト失敗\n", "Magic_Wind_Actor_ct(): Construct failed\n")); } this->actor.room = -1; switch (this->actor.params) { diff --git a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c index 861d72881f..b89838083f 100644 --- a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c +++ b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c @@ -14,6 +14,7 @@ #include "sfx.h" #include "sys_math3d.h" #include "sys_matrix.h" +#include "translation.h" #include "z_lib.h" #include "z64light.h" #include "z64play.h" @@ -180,8 +181,8 @@ void MirRay_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f); - // "Generation of reflectable light!" - PRINTF("反射用 光の発生!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + PRINTF(T("反射用 光の発生!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n", + "Generation of reflectable light!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n")); LOG_NUM("this->actor.arg_data", this->actor.params, "../z_mir_ray.c", 518); if (this->actor.params >= 0xA) { diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index 8a24d5cf2c..ab09e7420b 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -13,6 +13,7 @@ #include "regs.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64light.h" #include "z64ocarina.h" @@ -99,15 +100,13 @@ void OceffSpot_End(OceffSpot* this, PlayState* play) { play->msgCtx.ocarinaMode != OCARINA_MODE_08) { gSaveContext.sunsSongState = SUNSSONG_START; PRINTF_COLOR_YELLOW(); - // "Sun's Song Flag" - PRINTF("z_oceff_spot 太陽の歌フラグ\n"); + PRINTF(T("z_oceff_spot 太陽の歌フラグ\n", "z_oceff_spot Sun's Song Flag\n")); PRINTF_RST(); } } else { play->msgCtx.ocarinaMode = OCARINA_MODE_04; PRINTF_COLOR_YELLOW(); - // "Ocarina End" - PRINTF("z_oceff_spot オカリナ終了\n"); + PRINTF(T("z_oceff_spot オカリナ終了\n", "z_oceff_spot Ocarina finished\n")); PRINTF_RST(); } } diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index 7a38b72139..e069f1730a 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -14,6 +14,7 @@ #include "sfx.h" #include "sys_math3d.h" #include "terminal.h" +#include "translation.h" #include "z_en_item00.h" #include "z_lib.h" #include "z64environment.h" @@ -77,8 +78,8 @@ void ShotSun_Init(Actor* thisx, PlayState* play) { ShotSun* this = (ShotSun*)thisx; s32 params; - // "Ocarina secret occurrence" - PRINTF("%d ---- オカリナの秘密発生!!!!!!!!!!!!!\n", this->actor.params); + PRINTF(T("%d ---- オカリナの秘密発生!!!!!!!!!!!!!\n", "%d ---- Ocarina secret occurrence!!!!!!!!!!!!!\n"), + this->actor.params); params = PARAMS_GET_U(this->actor.params, 0, 8); if (params == 0x40 || params == 0x41) { this->fairySpawnerState = SPAWNER_OUT_OF_RANGE; diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c index 9343e7a549..cb6d76eeb3 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c @@ -10,6 +10,7 @@ #include "gfx.h" #include "gfx_setupdl.h" #include "printf.h" +#include "translation.h" #include "z64effect.h" #include "z64play.h" #include "z64skin_matrix.h" @@ -92,7 +93,7 @@ u32 EffectSsDeadDd_Init(PlayState* play, u32 index, EffectSs* this, void* initPa this->accel.z = this->velocity.z = (Rand_ZeroOne() - 0.5f) * 2.0f; } } else { - PRINTF("Effect_SS_Dd_disp_mode():mode_swが変です。\n"); + PRINTF(T("Effect_SS_Dd_disp_mode():mode_swが変です。\n", "Effect_SS_Dd_disp_mode():mode_sw is strange.\n")); return 0; } diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c index f0b3c8fce4..58daefa387 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c @@ -7,6 +7,7 @@ #include "z_eff_ss_dead_sound.h" #include "printf.h" #include "sfx.h" +#include "translation.h" #include "z64effect.h" #include "z64play.h" @@ -33,7 +34,7 @@ u32 EffectSsDeadSound_Init(PlayState* play, u32 index, EffectSs* this, void* ini this->update = EffectSsDeadSound_Update; this->rRepeatMode = initParams->repeatMode; this->rSfxId = initParams->sfxId; - PRINTF("コンストラクター3\n"); // "constructor 3" + PRINTF(T("コンストラクター3\n", "Constructor 3\n")); return 1; } diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c index 17af3ac9eb..e1ed9e924f 100644 --- a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c +++ b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c @@ -12,6 +12,7 @@ #include "rand.h" #include "sys_math.h" #include "sys_matrix.h" +#include "translation.h" #include "versions.h" #include "z_lib.h" #include "z64effect.h" @@ -90,7 +91,8 @@ u32 EffectSsEnIce_Init(PlayState* play, u32 index, EffectSs* this, void* initPar this->rEnvColorB = initParams->envColor.b; this->rAlphaMode = 0; } else { - PRINTF("Effect_Ss_En_Ice_ct():pid->mode_swがエラーです。\n"); + PRINTF(T("Effect_Ss_En_Ice_ct():pid->mode_swがエラーです。\n", + "Effect_Ss_En_Ice_ct():pid->mode_sw is an error.\n")); return 0; } diff --git a/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c b/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c index 60cad10d01..a5b8a24d1b 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c @@ -14,6 +14,7 @@ #include "rand.h" #include "segmented_address.h" #include "sys_matrix.h" +#include "translation.h" #include "z64effect.h" #include "z64play.h" #include "z64player.h" @@ -69,7 +70,7 @@ u32 EffectSsFhgFlash_Init(PlayState* play, u32 index, EffectSs* this, void* init this->gfx = SEGMENTED_TO_VIRTUAL(gPhantomEnergyBallDL); gSegments[6] = prevSeg6; } else { - PRINTF("Effect_Ss_Fhg_Flash_ct():pffd->modeエラー\n"); + PRINTF(T("Effect_Ss_Fhg_Flash_ct():pffd->modeエラー\n", "Effect_Ss_Fhg_Flash_ct():pffd->mode error\n")); return 0; } } else { diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c index 1445e61d02..9e2757049d 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c +++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c @@ -11,6 +11,7 @@ #include "printf.h" #include "segmented_address.h" #include "sys_matrix.h" +#include "translation.h" #include "z_lib.h" #include "z64effect.h" #include "z64play.h" @@ -55,7 +56,8 @@ u32 EffectSsIceSmoke_Init(PlayState* play, u32 index, EffectSs* this, void* init return 1; } - PRINTF("Effect_SS_Ice_Smoke_ct():バンク Object_Bank_Fzが有りません。\n"); + PRINTF(T("Effect_SS_Ice_Smoke_ct():バンク Object_Bank_Fzが有りません。\n", + "Effect_SS_Ice_Smoke_ct(): Bank Object_Bank_Fz does not exist.\n")); return 0; } diff --git a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c index fda08ca8b8..b0ba95adae 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c +++ b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c @@ -13,6 +13,7 @@ #include "line_numbers.h" #include "printf.h" #include "sys_matrix.h" +#include "translation.h" #include "versions.h" #include "z64effect.h" #include "z64play.h" @@ -65,7 +66,7 @@ u32 EffectSsKakera_Init(PlayState* play, u32 index, EffectSs* this, void* initPa } } else { - PRINTF("shape_modelがNULL\n"); + PRINTF(T("shape_modelがNULL\n", "shape_model is NULL\n")); LogUtils_HungupThread("../z_eff_kakera.c", LN1(175, 178)); } @@ -92,7 +93,8 @@ f32 func_809A9818(f32 arg0, f32 arg1) { #if DEBUG_FEATURES if (arg1 < 0.0f) { - PRINTF("範囲がマイナス!!(randomD_sectionUniformity)\n"); + PRINTF(T("範囲がマイナス!!(randomD_sectionUniformity)\n", + "The range is negative!! (randomD_sectionUniformity)\n")); } #endif diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index eb56ebd80c..79a5d05193 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -20,6 +20,7 @@ #include "sys_matrix.h" #include "terminal.h" #include "title_setup_state.h" +#include "translation.h" #include "versions.h" #include "z64audio.h" #include "z64ocarina.h" @@ -1910,8 +1911,9 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { if (pauseCtx->pageIndex == PAUSE_MAP) { if (YREG(7) != 0) { PRINTF_COLOR_YELLOW(); - PRINTF("キンスタ数(%d) Get_KIN_STA=%x (%x) (%x)\n", YREG(6), GET_GS_FLAGS(YREG(6)), - gAreaGsFlags[YREG(6)], gSaveContext.save.info.gsFlags[YREG(6) >> 2]); + PRINTF(T("キンスタ数(%d) Get_KIN_STA=%x (%x) (%x)\n", "Kinsta Count(%d) Get_KIN_STA=%x (%x) (%x)\n"), + YREG(6), GET_GS_FLAGS(YREG(6)), gAreaGsFlags[YREG(6)], + gSaveContext.save.info.gsFlags[YREG(6) >> 2]); PRINTF_RST(); YREG(7) = 0; @@ -3681,7 +3683,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->playerSegment = (void*)(((uintptr_t)play->objectCtx.spaceStart + 0x30) & ~0x3F); size1 = Player_InitPauseDrawData(play, pauseCtx->playerSegment, &pauseCtx->playerSkelAnime); - PRINTF("プレイヤー size1=%x\n", size1); + PRINTF(T("プレイヤー size1=%x\n", "Player size1=%x\n"), size1); size0 = (uintptr_t)_icon_item_staticSegmentRomEnd - (uintptr_t)_icon_item_staticSegmentRomStart; pauseCtx->iconItemSegment = (void*)ALIGN16((uintptr_t)pauseCtx->playerSegment + size1); @@ -3784,10 +3786,10 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->nameSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemLangSegment + size); - PRINTF("サイズ=%x\n", size2 + size1 + size0 + size); + PRINTF(T("サイズ=%x\n", "size=%x\n"), size2 + size1 + size0 + size); PRINTF("item_name I_N_PT=%x\n", 0x800); Interface_SetDoAction(play, DO_ACTION_DECIDE); - PRINTF("サイズ=%x\n", size2 + size1 + size0 + size + 0x800); + PRINTF(T("サイズ=%x\n", "size=%x\n"), size2 + size1 + size0 + size + 0x800); if (((void)0, gSaveContext.worldMapArea) < WORLD_MAP_AREA_MAX) { #if OOT_NTSC From 6459f3380024b1a30d96de4e531f812f4d010962 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 27 May 2025 18:46:27 +0200 Subject: [PATCH 4/5] T() macro in overlays 6 (#2544) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * z_en_dns.c and questionable translation for 売りナッツ * T() dnt_demo, dnt_jiji, dnt_nomal with translating the probably misspelled デグナッツ as deku scrub (japanese text of the game uses デクナッツ (note the second character is slightly different) and is translated to english as Deku Scrub) * T() dy_extra, encount2, ex_ruppy, fhg_fire, fire_rock * review * なにみの? -> What? --- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 32 ++++++------ .../actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c | 52 +++++++++++-------- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 39 +++++++------- .../actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c | 18 +++---- .../actors/ovl_En_Dy_Extra/z_en_dy_extra.c | 5 +- .../actors/ovl_En_Encount2/z_en_encount2.c | 20 +++---- .../actors/ovl_En_Ex_Item/z_en_ex_item.c | 2 +- .../actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c | 16 +++--- .../actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c | 8 +-- .../actors/ovl_En_Fire_Rock/z_en_fire_rock.c | 20 +++---- .../actors/ovl_En_G_Switch/z_en_g_switch.c | 4 +- 11 files changed, 112 insertions(+), 104 deletions(-) diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index c690638570..399f417aa1 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -12,6 +12,7 @@ #include "printf.h" #include "sfx.h" #include "terminal.h" +#include "translation.h" #include "z_en_item00.h" #include "z_lib.h" #include "z64effect.h" @@ -93,17 +94,17 @@ static u16 sStartingTextIds[] = { #if DEBUG_FEATURES static char* sItemDebugTxt[] = { - "デクの実売り ", // "Deku Nuts" - "デクの棒売り ", // "Deku Sticks" - "ハートの欠片売り ", // "Piece of Heart" - "デクの種売り ", // "Deku Seeds" - "デクの盾売り ", // "Deku Shield" - "バクダン売り ", // "Bombs" - "矢売り ", // "Arrows" - "赤のくすり売り ", // "Red Potion" - "緑のくすり売り ", // "Green Potion" - "デクの棒持てる数を増やす", // "Deku Stick Upgrade" - "デクの実持てる数を増やす", // "Deku Nut Upgrade" + T("デクの実売り ", "Deku Nuts "), + T("デクの棒売り ", "Deku Sticks "), + T("ハートの欠片売り ", "Piece of Heart "), + T("デクの種売り ", "Deku Seeds "), + T("デクの盾売り ", "Deku Shield "), + T("バクダン売り ", "Bombs "), + T("矢売り ", "Arrows "), + T("赤のくすり売り ", "Red Potion "), + T("緑のくすり売り ", "Green Potion "), + T("デクの棒持てる数を増やす", "Deku Stick Upgrade "), + T("デクの実持てる数を増やす", "Deku Nut Upgrade "), }; #endif @@ -143,8 +144,9 @@ void EnDns_Init(Actor* thisx, PlayState* play) { EnDns* this = (EnDns*)thisx; if (DNS_GET_TYPE(&this->actor) < 0) { - // "Function Error (Deku Salesman)" - PRINTF(VT_FGCOL(RED) "引数エラー(売りナッツ)[ arg_data = %d ]" VT_RST "\n", this->actor.params); + PRINTF(VT_FGCOL(RED) T("引数エラー(売りナッツ)[ arg_data = %d ]", + "Argument error (selling nuts) [ arg_data = %d ]") VT_RST "\n", + this->actor.params); Actor_Kill(&this->actor); return; } @@ -154,8 +156,8 @@ void EnDns_Init(Actor* thisx, PlayState* play) { DNS_GET_TYPE(&this->actor) = DNS_TYPE_DEKU_SEEDS_30; } - // "Deku Salesman" - PRINTF(VT_FGCOL(GREEN) "◆◆◆ 売りナッツ『%s』 ◆◆◆" VT_RST "\n", sItemDebugTxt[DNS_GET_TYPE(&this->actor)]); + PRINTF(VT_FGCOL(GREEN) T("◆◆◆ 売りナッツ『%s』 ◆◆◆", "◆◆◆ Selling nuts『%s』 ◆◆◆") VT_RST "\n", + sItemDebugTxt[DNS_GET_TYPE(&this->actor)]); Actor_ProcessInitChain(&this->actor, sInitChain); diff --git a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c index f0b940a744..d851c96a08 100644 --- a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c +++ b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c @@ -17,6 +17,7 @@ #include "sequence.h" #include "sfx.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64audio.h" #include "z64debug_display.h" @@ -89,8 +90,8 @@ void EnDntDemo_Init(Actor* thisx, PlayState* play2) { s32 pad; PRINTF("\n\n"); - // "Deku Scrub mask show start" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ デグナッツお面品評会開始 ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) + T("☆☆☆☆☆ デグナッツお面品評会開始 ☆☆☆☆☆ \n", "☆☆☆☆☆ Deku Scrub mask competition start ☆☆☆☆☆ \n") VT_RST); for (i = 0; i < 9; i++) { this->scrubPos[i] = sScrubPos[i]; this->scrubs[i] = (EnDntNomal*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_DNT_NOMAL, @@ -108,8 +109,10 @@ void EnDntDemo_Init(Actor* thisx, PlayState* play2) { this->leader = (EnDntJiji*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_DNT_JIJI, this->leaderPos.x, this->leaderPos.y, this->leaderPos.z, 0, 0, 0, 0); if (this->leader != NULL) { - // "jiji jiji jiji jiji jiji" [onomatopoeia for the scrub sound?] - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ じじじじじじじじじじい ☆☆☆☆☆ %x\n" VT_RST, this->leader); + // onomatopoeia for the scrub sound? + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ じじじじじじじじじじい ☆☆☆☆☆ %x\n", "☆☆☆☆☆ jiji jiji jiji jiji jiji ☆☆☆☆☆ %x\n") + VT_RST, + this->leader); } this->subCamId = SUB_CAM_ID_DONE; this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; @@ -206,15 +209,17 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) { ignore = true; delay = 8; reaction = DNT_SIGNAL_HIDE; - // "Special!" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 特別! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 特別! ☆☆☆☆☆ \n", "☆☆☆☆☆ Special! ☆☆☆☆☆ \n") VT_RST); } else { if (maskIdx >= PLAYER_MASK_MAX - 1) { - // "This is dangerous!" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ ヤバいよこれ! ☆☆☆☆☆ \n" VT_RST); - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ ヤバいよこれ! ☆☆☆☆☆ \n" VT_RST); - PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ ヤバいよこれ! ☆☆☆☆☆ \n" VT_RST); - PRINTF(VT_FGCOL(CYAN) "☆☆☆☆☆ ヤバいよこれ! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ ヤバいよこれ! ☆☆☆☆☆ \n", "☆☆☆☆☆ This is bad! ☆☆☆☆☆ \n") + VT_RST); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ ヤバいよこれ! ☆☆☆☆☆ \n", "☆☆☆☆☆ This is bad! ☆☆☆☆☆ \n") + VT_RST); + PRINTF(VT_FGCOL(MAGENTA) T("☆☆☆☆☆ ヤバいよこれ! ☆☆☆☆☆ \n", "☆☆☆☆☆ This is bad! ☆☆☆☆☆ \n") + VT_RST); + PRINTF(VT_FGCOL(CYAN) T("☆☆☆☆☆ ヤバいよこれ! ☆☆☆☆☆ \n", "☆☆☆☆☆ This is bad! ☆☆☆☆☆ \n") + VT_RST); maskIdx = Rand_ZeroFloat(7.99f); } @@ -237,17 +242,22 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) { break; } PRINTF("\n\n"); - // "Each index 1" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 各インデックス1 ☆☆☆☆☆ %d\n" VT_RST, rand9); - // "Each index 2" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 各インデックス2 ☆☆☆☆☆ %d\n" VT_RST, maskIdx); - // "Each index 3" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 各インデックス3 ☆☆☆☆☆ %d\n" VT_RST, resultIdx); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 各インデックス1 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Each index 1 ☆☆☆☆☆ %d\n") + VT_RST, + rand9); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 各インデックス2 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Each index 2 ☆☆☆☆☆ %d\n") + VT_RST, + maskIdx); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 各インデックス3 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Each index 3 ☆☆☆☆☆ %d\n") + VT_RST, + resultIdx); PRINTF("\n"); - // "What kind of evaluation?" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ どういう評価? ☆☆☆☆☆☆ %d\n" VT_RST, reaction); - // "What kind of action?" - PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ どういうアクション? ☆☆☆ %d\n" VT_RST, this->action); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ どういう評価? ☆☆☆☆☆☆ %d\n", + "☆☆☆☆☆ What kind of evaluation? ☆☆☆☆☆☆ %d\n") VT_RST, + reaction); + PRINTF(VT_FGCOL(MAGENTA) T("☆☆☆☆☆ どういうアクション? ☆☆☆ %d\n", + "☆☆☆☆☆ What kind of action? ☆☆☆ %d\n") VT_RST, + this->action); PRINTF("\n\n"); break; } diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index 442c0a3569..c89aa0d67f 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -21,6 +21,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64effect.h" #include "z64play.h" @@ -99,8 +100,9 @@ void EnDntJiji_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->stage = (EnDntDemo*)this->actor.parent; PRINTF("\n\n"); - // "Deku Scrub mask show elder" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ デグナッツお面品評会長老 ☆☆☆☆☆ %x\n" VT_RST, this->stage); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ デグナッツお面品評会長老 ☆☆☆☆☆ %x\n", + "☆☆☆☆☆ Deku Scrub mask competition elder ☆☆☆☆☆ %x\n") VT_RST, + this->stage); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actor.attentionRangeType = ATTENTION_RANGE_6; @@ -292,24 +294,22 @@ void EnDntJiji_GivePrize(EnDntJiji* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) { if ((this->getItemId == GI_DEKU_NUT_UPGRADE_30) || (this->getItemId == GI_DEKU_NUT_UPGRADE_40)) { - // "nut" - PRINTF("実 \n"); - PRINTF("実 \n"); - PRINTF("実 \n"); - PRINTF("実 \n"); - PRINTF("実 \n"); - PRINTF("実 \n"); - PRINTF("実 \n"); - PRINTF("実 \n"); + PRINTF(T("実 \n", "nut \n")); + PRINTF(T("実 \n", "nut \n")); + PRINTF(T("実 \n", "nut \n")); + PRINTF(T("実 \n", "nut \n")); + PRINTF(T("実 \n", "nut \n")); + PRINTF(T("実 \n", "nut \n")); + PRINTF(T("実 \n", "nut \n")); + PRINTF(T("実 \n", "nut \n")); SET_ITEMGETINF(ITEMGETINF_FOREST_STAGE_NUT_UPGRADE); } else { - // "stick" - PRINTF("棒 \n"); - PRINTF("棒 \n"); - PRINTF("棒 \n"); - PRINTF("棒 \n"); - PRINTF("棒 \n"); - PRINTF("棒 \n"); + PRINTF(T("棒 \n", "stick \n")); + PRINTF(T("棒 \n", "stick \n")); + PRINTF(T("棒 \n", "stick \n")); + PRINTF(T("棒 \n", "stick \n")); + PRINTF(T("棒 \n", "stick \n")); + PRINTF(T("棒 \n", "stick \n")); SET_ITEMGETINF(ITEMGETINF_FOREST_STAGE_STICK_UPGRADE); } this->actor.textId = 0; @@ -393,8 +393,7 @@ void EnDntJiji_Update(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.015f); this->unkTimer++; if (BREG(0)) { - // "time" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ 時間 ☆☆☆☆☆ %d\n" VT_RST, this->timer); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ 時間 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ time ☆☆☆☆☆ %d\n") VT_RST, this->timer); } if ((this->timer > 1) && (this->timer != 0)) { this->timer--; diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c index f5d3f0b9dd..ab5a70d82f 100644 --- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c +++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c @@ -21,6 +21,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "versions.h" #include "z_lib.h" #include "z64effect.h" @@ -149,16 +150,15 @@ void EnDntNomal_Init(Actor* thisx, PlayState* play) { this->objectId = -1; if (this->type == ENDNTNOMAL_TARGET) { PRINTF("\n\n"); - // "Deku Scrub target" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ デグナッツ的当て ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ デグナッツ的当て ☆☆☆☆☆ \n", "☆☆☆☆☆ Deku Scrub target ☆☆☆☆☆ \n") VT_RST); Collider_InitQuad(play, &this->targetColliderQuad); Collider_SetQuad(play, &this->targetColliderQuad, &this->actor, &sTargetQuadInit); this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; this->objectId = OBJECT_HINTNUTS; } else { PRINTF("\n\n"); - // "Deku Scrub mask show audience" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ デグナッツお面品評会一般人 ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ デグナッツお面品評会一般人 ☆☆☆☆☆ \n", + "☆☆☆☆☆ Deku Scrub mask competition audience ☆☆☆☆☆ \n") VT_RST); Collider_InitCylinder(play, &this->bodyColliderCylinder); Collider_SetCylinder(play, &this->bodyColliderCylinder, &this->actor, &sBodyCylinderInit); this->objectId = OBJECT_DNK; @@ -167,10 +167,9 @@ void EnDntNomal_Init(Actor* thisx, PlayState* play) { this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, this->objectId); if (this->requiredObjectSlot < 0) { Actor_Kill(&this->actor); - // "What?" - PRINTF(VT_FGCOL(MAGENTA) " なにみの? %d\n" VT_RST "\n", this->requiredObjectSlot); - // "Bank is funny" - PRINTF(VT_FGCOL(CYAN) " バンクおかしいしぞ!%d\n" VT_RST "\n", this->actor.params); + PRINTF(VT_FGCOL(MAGENTA) T(" なにみの? %d\n", " What? %d\n") VT_RST "\n", this->requiredObjectSlot); + PRINTF(VT_FGCOL(CYAN) T(" バンクおかしいしぞ!%d\n", " The bank is weird! %d\n") VT_RST "\n", + this->actor.params); return; } } else { @@ -279,8 +278,7 @@ void EnDntNomal_TargetWait(EnDntNomal* this, PlayState* play) { EffectSsExtra_Spawn(play, &scorePos, &scoreVel, &scoreAccel, 4, 2); Audio_StopSfxById(NA_SE_SY_TRE_BOX_APPEAR); Sfx_PlaySfxCentered(NA_SE_SY_TRE_BOX_APPEAR); - // "Big hit" - PRINTF(VT_FGCOL(CYAN) "☆☆☆☆☆ 大当り ☆☆☆☆☆ %d\n" VT_RST, this->hitCounter); + PRINTF(VT_FGCOL(CYAN) T("☆☆☆☆☆ 大当り ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Big hit ☆☆☆☆☆ %d\n") VT_RST, this->hitCounter); if (!LINK_IS_ADULT && !GET_ITEMGETINF(ITEMGETINF_1D)) { this->hitCounter++; if (this->hitCounter >= 3) { diff --git a/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c b/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c index d65d703e68..804e04ad84 100644 --- a/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c +++ b/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c @@ -13,6 +13,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64play.h" @@ -47,8 +48,8 @@ void EnDyExtra_Init(Actor* thisx, PlayState* play) { EnDyExtra* this = (EnDyExtra*)thisx; PRINTF("\n\n"); - // "Big fairy effect" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ 大妖精効果 ☆☆☆☆☆ %d\n" VT_RST, this->actor.params); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ 大妖精効果 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Big fairy effect ☆☆☆☆☆ %d\n") VT_RST, + this->actor.params); this->type = this->actor.params; this->scale.x = 0.025f; this->scale.y = 0.039f; diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c index 847f5d34a1..c3604dd321 100644 --- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c +++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c @@ -10,6 +10,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64play.h" #include "z64player.h" @@ -57,16 +58,16 @@ void EnEncount2_Init(Actor* thisx, PlayState* play) { if (!this->isNotDeathMountain) { PRINTF("\n\n"); - // "☆☆☆☆☆ Death Mountain Encount2 set ☆☆☆☆☆" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ デスマウンテンエンカウント2セットされました ☆☆☆☆☆ %d\n" VT_RST, + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ デスマウンテンエンカウント2セットされました ☆☆☆☆☆ %d\n", + "☆☆☆☆☆ Death Mountain Encount2 set ☆☆☆☆☆ %d\n") VT_RST, this->actor.params); if (LINK_IS_ADULT && GET_EVENTCHKINF(EVENTCHKINF_49)) { // flag for having used fire temple blue warp Actor_Kill(thisx); } } else { PRINTF("\n\n"); - // "☆☆☆☆☆ Ganon Tower Escape Encount2 set ☆☆☆☆☆" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ ガノンタワー脱出エンカウント2セットされました ☆☆☆☆☆ %d\n" VT_RST, + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ ガノンタワー脱出エンカウント2セットされました ☆☆☆☆☆ %d\n", + "☆☆☆☆☆ Ganon Tower Escape Encount2 set ☆☆☆☆☆ %d\n") VT_RST, this->actor.params); } @@ -248,12 +249,11 @@ void EnEncount2_SpawnRocks(EnEncount2* this, PlayState* play) { this->numSpawnedRocks++; return; } - // "☆☆☆☆☆ Can't occur! ☆☆☆☆☆" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST); - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST); - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST); - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST); - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n") VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n") VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n") VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n") VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n\n") VT_RST); } } } diff --git a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c index bfa9280fc6..e9c0d12dda 100644 --- a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c +++ b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c @@ -122,7 +122,7 @@ void EnExItem_Init(Actor* thisx, PlayState* play) { this->actor.draw = NULL; if (this->requiredObjectSlot < 0) { Actor_Kill(&this->actor); - PRINTF(T("なにみの? %d\n", "What's that? %d\n"), this->actor.params); + PRINTF(T("なにみの? %d\n", "What? %d\n"), this->actor.params); PRINTF(VT_FGCOL(MAGENTA) T(" バンクおかしいしぞ!%d\n", " The bank is weird!%d\n") VT_RST "\n", this->actor.params); return; diff --git a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c index 8cd6e5c4a1..0777494e6a 100644 --- a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c +++ b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c @@ -10,6 +10,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_en_item00.h" #include "z_lib.h" #include "z64effect.h" @@ -63,8 +64,7 @@ void EnExRuppy_Init(Actor* thisx, PlayState* play) { s16 temp3; this->type = this->actor.params; - // "Index" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ インデックス ☆☆☆☆☆ %x\n" VT_RST, this->type); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ インデックス ☆☆☆☆☆ %x\n", "☆☆☆☆☆ Index ☆☆☆☆☆ %x\n") VT_RST, this->type); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f); switch (this->type) { @@ -134,8 +134,7 @@ void EnExRuppy_Init(Actor* thisx, PlayState* play) { this->colorIdx = (s16)Rand_ZeroFloat(3.99f) + 1; } this->actor.gravity = -3.0f; - // "Wow Coin" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ わーなーコイン ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ わーなーコイン ☆☆☆☆☆ \n", "☆☆☆☆☆ Wow Coin ☆☆☆☆☆ \n") VT_RST); this->actor.shape.shadowScale = 6.0f; this->actor.shape.yOffset = 700.0f; this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; @@ -156,8 +155,7 @@ void EnExRuppy_Init(Actor* thisx, PlayState* play) { break; } this->actor.gravity = -3.0f; - // "Normal rupee" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ ノーマルルピー ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ ノーマルルピー ☆☆☆☆☆ \n", "☆☆☆☆☆ Normal rupee ☆☆☆☆☆ \n") VT_RST); this->actor.shape.shadowScale = 6.0f; this->actor.shape.yOffset = 700.0f; this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; @@ -342,10 +340,10 @@ void EnExRuppy_WaitToBlowUp(EnExRuppy* this, PlayState* play) { parent->unk_226 = 1; } } else { - // "That idiot! error" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ そ、そんなばかな!エラー!!!!! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ そ、そんなばかな!エラー!!!!! ☆☆☆☆☆ \n", + "☆☆☆☆☆ That's stupid! Error!!!!! ☆☆☆☆☆ \n") VT_RST); } - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ バカめ! ☆☆☆☆☆ \n" VT_RST); // "Stupid!" + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ バカめ! ☆☆☆☆☆ \n", "☆☆☆☆☆ Stupid! ☆☆☆☆☆ \n") VT_RST); explosionScale = 100; explosionScaleStep = 30; if (this->type == 2) { diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c index 2fdf9525d7..3eeb70ecb2 100644 --- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c +++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c @@ -20,6 +20,7 @@ #include "segmented_address.h" #include "sfx.h" #include "sys_matrix.h" +#include "translation.h" #include "z_lib.h" #include "z64effect.h" #include "z64play.h" @@ -135,9 +136,9 @@ void EnFhgFire_Init(Actor* thisx, PlayState* play) { this->collider.dim.height = this->actor.world.rot.x * 0.13f; this->collider.dim.yShift = 0; } else if (this->actor.params == FHGFIRE_SPEAR_LIGHT) { - PRINTF("yari hikari ct 1\n"); // "light spear" + PRINTF(T("yari hikari ct 1\n", "spear light ct 1\n")); EnFhgFire_SetUpdate(this, EnFhgFire_SpearLight); - PRINTF("yari hikari ct 2\n"); + PRINTF(T("yari hikari ct 2\n", "spear light ct 2\n")); this->work[FHGFIRE_TIMER] = this->actor.world.rot.x; this->work[FHGFIRE_FIRE_MODE] = this->actor.world.rot.y; } else if ((this->actor.params == FHGFIRE_WARP_EMERGE) || (this->actor.params == FHGFIRE_WARP_RETREAT) || @@ -655,8 +656,7 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) { this->actor.speed = 20.0f; } Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_FIRE - SFX_FLAG); - // "Why ah ah ah ah" - PRINTF("なぜだああああああああ %d\n", this->work[FHGFIRE_VARIANCE_TIMER]); + PRINTF(T("なぜだああああああああ %d\n", "Whyyyyyyyy %d\n"), this->work[FHGFIRE_VARIANCE_TIMER]); } } diff --git a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c index 60f7198875..85a1fa0cee 100644 --- a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c +++ b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c @@ -10,6 +10,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64debug_display.h" #include "z64effect.h" @@ -100,16 +101,14 @@ void EnFireRock_Init(Actor* thisx, PlayState* play) { switch (this->type) { case FIRE_ROCK_CEILING_SPOT_SPAWNER: this->actor.draw = NULL; - // "☆☆☆☆☆ ceiling waiting rock ☆☆☆☆☆" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ 天井待ち岩 ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ 天井待ち岩 ☆☆☆☆☆ \n", "☆☆☆☆☆ ceiling waiting rock ☆☆☆☆☆ \n") VT_RST); this->actionFunc = FireRock_WaitSpawnRocksFromCeiling; break; case FIRE_ROCK_ON_FLOOR: Actor_SetScale(&this->actor, 0.03f); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &D_80A12CCC); - // "☆☆☆☆☆ floor rock ☆☆☆☆☆" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ 床岩 ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ 床岩 ☆☆☆☆☆ \n", "☆☆☆☆☆ floor rock ☆☆☆☆☆ \n") VT_RST); this->collider.dim.radius = 23; this->collider.dim.height = 37; this->collider.dim.yShift = -10; @@ -154,8 +153,8 @@ void EnFireRock_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnFireRock_Fall; break; default: - // "☆☆☆☆☆ No such rock! ERR !!!!!! ☆☆☆☆☆" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ そんな岩はねぇ!ERR!!!!!! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(YELLOW) + T("☆☆☆☆☆ そんな岩はねぇ!ERR!!!!!! ☆☆☆☆☆ \n", "☆☆☆☆☆ No such rock! ERR!!!!!! ☆☆☆☆☆ \n") VT_RST); Actor_Kill(&this->actor); break; } @@ -169,8 +168,9 @@ void EnFireRock_Destroy(Actor* thisx, PlayState* play) { if ((spawner->actor.update != NULL) && (spawner->numSpawnedRocks > 0)) { spawner->numSpawnedRocks--; PRINTF("\n\n"); - // "☆☆☆☆☆ Number of spawned instances recovery ☆☆☆☆☆%d" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生数回復 ☆☆☆☆☆%d\n" VT_RST, spawner->numSpawnedRocks); + PRINTF(VT_FGCOL(GREEN) + T("☆☆☆☆☆ 発生数回復 ☆☆☆☆☆%d\n", "☆☆☆☆☆ Number of spawned instances recovery ☆☆☆☆☆%d\n") VT_RST, + spawner->numSpawnedRocks); PRINTF("\n\n"); } } @@ -369,8 +369,8 @@ void EnFireRock_Update(Actor* thisx, PlayState* play) { thisx->velocity.y = 0.0f; thisx->speed = 0.0f; this->actionFunc = EnFireRock_SpawnMoreBrokenPieces; - // "☆☆☆☆☆ Shield Defense Lv1 ☆☆☆☆☆" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ シールド防御 Lv1 ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ シールド防御 Lv1 ☆☆☆☆☆ \n", "☆☆☆☆☆ Shield Defense Lv1 ☆☆☆☆☆ \n") + VT_RST); return; } setCollision = true; diff --git a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c index 8bca3e607a..b87b8af66e 100644 --- a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c +++ b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c @@ -19,6 +19,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_en_item00.h" #include "z_lib.h" #include "z64audio.h" @@ -163,8 +164,7 @@ void EnGSwitch_Init(Actor* thisx, PlayState* play) { this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, this->objectId); if (this->requiredObjectSlot < 0) { Actor_Kill(&this->actor); - // "what?" - PRINTF(VT_FGCOL(MAGENTA) " なにみの? %d\n" VT_RST "\n", this->requiredObjectSlot); + PRINTF(VT_FGCOL(MAGENTA) T(" なにみの? %d\n", " What? %d\n") VT_RST "\n", this->requiredObjectSlot); // "bank is funny" PRINTF(VT_FGCOL(CYAN) " バンクおかしいしぞ!%d\n" VT_RST "\n", this->actor.params); } From e991255a45b628d75a7b378726415414215aa814 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 27 May 2025 19:04:48 +0200 Subject: [PATCH 5/5] T() macro in overlays 7 (#2545) * T() fish, fr, g_switch * T() ge1, ge2, gm, goroiwa * T() heishi1-3 * review --- src/overlays/actors/ovl_En_Fish/z_en_fish.c | 18 +++--- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 14 ++--- .../actors/ovl_En_G_Switch/z_en_g_switch.c | 46 +++++++-------- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 9 +-- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 7 +-- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 8 +-- .../actors/ovl_En_Goroiwa/z_en_goroiwa.c | 21 +++---- .../actors/ovl_En_Heishi1/z_en_heishi1.c | 50 +++++++++------- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 58 ++++++++++--------- .../actors/ovl_En_Heishi3/z_en_heishi3.c | 9 +-- 10 files changed, 124 insertions(+), 116 deletions(-) diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c index 9de3dbe4f8..f5964ebaea 100644 --- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c +++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c @@ -13,6 +13,7 @@ #include "printf.h" #include "sfx.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64item.h" #include "z64play.h" @@ -396,8 +397,8 @@ void EnFish_Dropped_Fall(EnFish* this, PlayState* play) { } else if ((this->timer <= 0) && (this->actor.params == FISH_DROPPED) && (this->actor.floorHeight < BGCHECK_Y_MIN + 10.0f)) { PRINTF_COLOR_WARNING(); - // "BG missing? Running Actor_delete" - PRINTF("BG 抜け? Actor_delete します(%s %d)\n", "../z_en_sakana.c", 822); + PRINTF(T("BG 抜け? Actor_delete します(%s %d)\n", "BG missing? Running Actor_delete (%s %d)\n"), + "../z_en_sakana.c", 822); PRINTF_RST(); Actor_Kill(&this->actor); } @@ -639,9 +640,9 @@ void EnFish_UpdateCutscene(EnFish* this, PlayState* play) { if (play) {} if (cue == NULL) { - // "Warning : DEMO ended without dousa (action) 3 termination being called" - PRINTF("Warning : dousa 3 消滅 が呼ばれずにデモが終了した(%s %d)(arg_data 0x%04x)\n", "../z_en_sakana.c", 1169, - this->actor.params); + PRINTF(T("Warning : dousa 3 消滅 が呼ばれずにデモが終了した(%s %d)(arg_data 0x%04x)\n", + "Warning : Demo ended without action 3 being called (%s %d)(arg_data 0x%04x)\n"), + "../z_en_sakana.c", 1169, this->actor.params); EnFish_ClearCutsceneData(this); Actor_Kill(&this->actor); return; @@ -658,14 +659,13 @@ void EnFish_UpdateCutscene(EnFish* this, PlayState* play) { EnFish_Cutscene_WiggleFlyingThroughAir(this, play); break; case 3: - // "DEMO fish termination" - PRINTF("デモ魚消滅\n"); + PRINTF(T("デモ魚消滅\n", "Demo fish disappearance\n")); EnFish_ClearCutsceneData(this); Actor_Kill(&this->actor); return; default: - // "Improper DEMO action" - PRINTF("不正なデモ動作(%s %d)(arg_data 0x%04x)\n", "../z_en_sakana.c", 1200, this->actor.params); + PRINTF(T("不正なデモ動作(%s %d)(arg_data 0x%04x)\n", "Incorrect demo behavior (%s %d)(arg_data 0x%04x)\n"), + "../z_en_sakana.c", 1200, this->actor.params); break; } diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index 2d741172b2..00d29dcc6f 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -13,6 +13,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64audio.h" #include "z64debug_display.h" @@ -269,8 +270,8 @@ void EnFr_Init(Actor* thisx, PlayState* play) { } else { if ((this->actor.params >= 6) || (this->actor.params < 0)) { PRINTF_COLOR_ERROR(); - // "The argument is wrong!!" - PRINTF("%s[%d] : 引数が間違っている!!(%d)\n", "../z_en_fr.c", 370, this->actor.params); + PRINTF(T("%s[%d] : 引数が間違っている!!(%d)\n", "%s[%d] : The argument is wrong!! (%d)\n"), + "../z_en_fr.c", 370, this->actor.params); PRINTF_RST(); ASSERT(0, "0", "../z_en_fr.c", 372); } @@ -279,8 +280,7 @@ void EnFr_Init(Actor* thisx, PlayState* play) { if (this->requiredObjectSlot < 0) { Actor_Kill(&this->actor); PRINTF_COLOR_ERROR(); - // "There is no bank!!" - PRINTF("%s[%d] : バンクが無いよ!!\n", "../z_en_fr.c", 380); + PRINTF(T("%s[%d] : バンクが無いよ!!\n", "%s[%d] : There is no bank!!\n"), "../z_en_fr.c", 380); PRINTF_RST(); ASSERT(0, "0", "../z_en_fr.c", 382); } @@ -1004,8 +1004,7 @@ void EnFr_Deactivate(EnFr* this, PlayState* play) { if (frog == NULL) { PRINTF_COLOR_ERROR(); - // "There are no frogs!?" - PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1604); + PRINTF(T("%s[%d]カエルがいない!?\n", "%s[%d] There are no frogs!?\n"), "../z_en_fr.c", 1604); PRINTF_RST(); return; } else if (frog->isDeactivating != true) { @@ -1018,8 +1017,7 @@ void EnFr_Deactivate(EnFr* this, PlayState* play) { if (frog == NULL) { PRINTF_COLOR_ERROR(); - // "There are no frogs!?" - PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1618); + PRINTF(T("%s[%d]カエルがいない!?\n", "%s[%d] There are no frogs!?\n"), "../z_en_fr.c", 1618); PRINTF_RST(); return; } diff --git a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c index b87b8af66e..5a6ad4a323 100644 --- a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c +++ b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c @@ -105,22 +105,21 @@ void EnGSwitch_Init(Actor* thisx, PlayState* play) { this->type = PARAMS_GET_U(this->actor.params, 12, 4); this->switchFlag = PARAMS_GET_U(this->actor.params, 0, 6); this->numEffects = EN_GSWITCH_EFFECT_COUNT; - // "index" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ インデックス ☆☆☆☆☆ %x\n" VT_RST, this->type); - // "save" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ セーブ\t ☆☆☆☆☆ %x\n" VT_RST, this->switchFlag); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ インデックス ☆☆☆☆☆ %x\n", "☆☆☆☆☆ Index ☆☆☆☆☆ %x\n") VT_RST, this->type); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ セーブ\t ☆☆☆☆☆ %x\n", "☆☆☆☆☆ Save\t ☆☆☆☆☆ %x\n") VT_RST, this->switchFlag); switch (this->type) { case ENGSWITCH_SILVER_TRACKER: PRINTF("\n\n"); - // "parent switch spawn" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 親スイッチ発生 ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 親スイッチ発生 ☆☆☆☆☆ %x\n", "☆☆☆☆☆ Parent switch spawn ☆☆☆☆☆ %x\n") VT_RST, + this->actor.params); sCollectedCount = 0; // Ideally the following two lines would be // this->silverCount = PARAMS_GET_U(this->actor.params, 6, 6); this->silverCount = PARAMS_GET_NOMASK(this->actor.params, 6); this->silverCount &= 0x3F; - // "maximum number of checks" - PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ 最大チェック数 ☆☆☆☆☆ %d\n" VT_RST, this->silverCount); + PRINTF(VT_FGCOL(MAGENTA) T("☆☆☆☆☆ 最大チェック数 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Maximum number of checks ☆☆☆☆☆ %d\n") + VT_RST, + this->silverCount); PRINTF("\n\n"); if (Flags_GetSwitch(play, this->switchFlag)) { // This is a reference to Hokuto no Ken @@ -132,8 +131,8 @@ void EnGSwitch_Init(Actor* thisx, PlayState* play) { break; case ENGSWITCH_SILVER_RUPEE: PRINTF("\n\n"); - // "child switch spawn" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 子スイッチ発生 ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 子スイッチ発生 ☆☆☆☆☆ %x\n", "☆☆☆☆☆ Child switch spawn ☆☆☆☆☆ %x\n") VT_RST, + this->actor.params); this->colorIdx = 5; this->numEffects = 20; Collider_InitCylinder(play, &this->collider); @@ -150,8 +149,8 @@ void EnGSwitch_Init(Actor* thisx, PlayState* play) { break; case ENGSWITCH_ARCHERY_POT: PRINTF("\n\n"); - // "Horseback archery destructible pot" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ やぶさめぶち抜き壷 ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ やぶさめぶち抜き壷 ☆☆☆☆☆ \n", + "☆☆☆☆☆ Horseback archery destructible pot ☆☆☆☆☆ \n") VT_RST); this->actor.gravity = -3.0f; this->colorIdx = Rand_ZeroFloat(2.99f); Collider_InitCylinder(play, &this->collider); @@ -165,8 +164,8 @@ void EnGSwitch_Init(Actor* thisx, PlayState* play) { if (this->requiredObjectSlot < 0) { Actor_Kill(&this->actor); PRINTF(VT_FGCOL(MAGENTA) T(" なにみの? %d\n", " What? %d\n") VT_RST "\n", this->requiredObjectSlot); - // "bank is funny" - PRINTF(VT_FGCOL(CYAN) " バンクおかしいしぞ!%d\n" VT_RST "\n", this->actor.params); + PRINTF(VT_FGCOL(CYAN) T(" バンクおかしいしぞ!%d\n", " Bank is weird! %d\n") VT_RST "\n", + this->actor.params); } this->collider.dim.radius = 24; this->collider.dim.height = 74; @@ -233,18 +232,18 @@ void EnGSwitch_SilverRupeeTracker(EnGSwitch* this, PlayState* play) { if (this->noteIndex < sCollectedCount) { if (sCollectedCount < 5) { - // "sound?" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 音? ☆☆☆☆☆ %d\n" VT_RST, this->noteIndex); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 音? ☆☆☆☆☆ %d\n", "sound?") VT_RST, this->noteIndex); Audio_PlaySfxTransposed(&gSfxDefaultPos, NA_SE_EV_FIVE_COUNT_LUPY, majorScale[this->noteIndex]); this->noteIndex = sCollectedCount; } } if (sCollectedCount >= this->silverCount) { - // "It is now the end of the century." - // This another reference to Hokuto no Ken. - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 時はまさに世紀末〜 ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); - // "Last!" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ らすとぉ! ☆☆☆☆☆ \n" VT_RST); + // This is another reference to Hokuto no Ken. + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 時はまさに世紀末〜 ☆☆☆☆☆ %d\n", + "☆☆☆☆☆ It is now the end of the century. ☆☆☆☆☆ %d\n") VT_RST, + this->switchFlag); + PRINTF(VT_FGCOL(GREEN) + T("☆☆☆☆☆ らすとぉ! ☆☆☆☆☆ \n", "☆☆☆☆☆ Last! ☆☆☆☆☆ \n") VT_RST); if ((play->sceneId == SCENE_GERUDO_TRAINING_GROUND) && (this->actor.room == 2)) { Flags_SetTempClear(play, this->actor.room); } else { @@ -367,8 +366,9 @@ void EnGSwitch_GalleryRupee(EnGSwitch* this, PlayState* play) { gallery->targetState[this->index] = ENSYATEKIHIT_HIT; Sfx_PlaySfxCentered(NA_SE_EV_HIT_SOUND); Sfx_PlaySfxCentered(NA_SE_SY_GET_RUPY); - // "Yeah !" - PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ いぇぇーす!HIT!! ☆☆☆☆☆ %d\n" VT_RST, gallery->hitCount); + PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ いぇぇーす!HIT!! ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Yeah! HIT!! ☆☆☆☆☆ %d\n") + VT_RST, + gallery->hitCount); EnGSwitch_Break(this, play); this->killTimer = 50; this->broken = true; diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index c47c8271e5..8b6d821346 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -14,6 +14,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64face_reaction.h" #include "z64horse.h" @@ -147,8 +148,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) { case GE1_TYPE_VALLEY_FLOOR: if (LINK_IS_ADULT) { - // "Valley floor Gerudo withdrawal" - PRINTF(VT_FGCOL(CYAN) "谷底 ゲルド 撤退 \n" VT_RST); + PRINTF(VT_FGCOL(CYAN) T("谷底 ゲルド 撤退 \n", "Valley floor Gerudo withdrawal \n") VT_RST); Actor_Kill(&this->actor); return; } @@ -163,8 +163,9 @@ void EnGe1_Init(Actor* thisx, PlayState* play) { } this->actor.attentionRangeType = ATTENTION_RANGE_3; this->hairstyle = GE1_HAIR_BOB; - // "Horseback archery Gerudo EVENT_INF(0) =" - PRINTF(VT_FGCOL(CYAN) "やぶさめ ゲルド EVENT_INF(0) = %x\n" VT_RST, gSaveContext.eventInf[0]); + PRINTF(VT_FGCOL(CYAN) + T("やぶさめ ゲルド EVENT_INF(0) = %x\n", "Horseback archery Gerudo EVENT_INF(0) = %x\n") VT_RST, + gSaveContext.eventInf[0]); if (GET_EVENTINF(EVENTINF_HORSES_08)) { this->actionFunc = EnGe1_TalkAfterGame_Archery; diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index cae8d14bf1..704ca69543 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -13,6 +13,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64effect.h" #include "z64horse.h" @@ -585,14 +586,12 @@ void EnGe2_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); if (Ge2_DetectPlayerInUpdate(play, this, &this->actor.focus.pos, this->actor.shape.rot.y, this->yDetectRange)) { - // "Discovered!" - PRINTF(VT_FGCOL(GREEN) "発見!!!!!!!!!!!!\n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("発見!!!!!!!!!!!!\n", "Discovered!!!!!!!!!!!!\n") VT_RST); EnGe2_SetupCapturePlayer(this, play); } if ((PARAMS_GET_S(this->actor.params, 0, 8) == GE2_TYPE_STATIONARY) && (this->actor.xzDistToPlayer < 100.0f)) { - // "Discovered!" - PRINTF(VT_FGCOL(GREEN) "発見!!!!!!!!!!!!\n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("発見!!!!!!!!!!!!\n", "Discovered!!!!!!!!!!!!\n") VT_RST); EnGe2_SetupCapturePlayer(this, play); } } diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 4b6a979b58..0c904a8808 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -15,6 +15,7 @@ #include "segmented_address.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z64play.h" #include "z64player.h" #include "z64save.h" @@ -80,15 +81,14 @@ void EnGm_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); - // "Medi Goron" - PRINTF(VT_FGCOL(GREEN) "%s[%d] : 中ゴロン[%d]" VT_RST "\n", "../z_en_gm.c", 133, this->actor.params); + PRINTF(VT_FGCOL(GREEN) T("%s[%d] : 中ゴロン[%d]", "%s[%d] : Medi Goron [%d]") VT_RST "\n", "../z_en_gm.c", 133, + this->actor.params); this->gmObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GM); if (this->gmObjectSlot < 0) { PRINTF_COLOR_ERROR(); - // "There is no model bank! !! (Medi Goron)" - PRINTF("モデル バンクが無いよ!!(中ゴロン)\n"); + PRINTF(T("モデル バンクが無いよ!!(中ゴロン)\n", "There is no model bank!! (Medi Goron)\n")); PRINTF_RST(); ASSERT(0, "0", "../z_en_gm.c", 145); } diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 10ba10d18d..dfd8130d8d 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -17,6 +17,7 @@ #include "sys_math3d.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64effect.h" #include "z64play.h" @@ -268,8 +269,7 @@ s32 EnGoroiwa_GetAscendDirection(EnGoroiwa* this, PlayState* play) { if (nextPointPos->x == currentPointPos->x && nextPointPos->z == currentPointPos->z) { #if DEBUG_FEATURES if (nextPointPos->y == currentPointPos->y) { - // "Error: Invalid path data (points overlap)" - PRINTF("Error : レールデータ不正(点が重なっている)"); + PRINTF(T("Error : レールデータ不正(点が重なっている)", "Error : Rail data is incorrect (dots overlap)")); PRINTF("(%s %d)(arg_data 0x%04x)\n", "../z_en_gr.c", 559, this->actor.params); } #endif @@ -564,14 +564,15 @@ void EnGoroiwa_Init(Actor* thisx, PlayState* play) { EnGoroiwa_InitCollider(this, play); pathIdx = PARAMS_GET_U(this->actor.params, 0, 8); if (pathIdx == 0xFF) { - // "Error: Invalid arg_data" - PRINTF("Error : arg_data が不正(%s %d)(arg_data 0x%04x)\n", "../z_en_gr.c", 1033, this->actor.params); + PRINTF(T("Error : arg_data が不正(%s %d)(arg_data 0x%04x)\n", + "Error : Invalid arg_data (%s %d)(arg_data 0x%04x)\n"), + "../z_en_gr.c", 1033, this->actor.params); Actor_Kill(&this->actor); return; } if (play->pathList[pathIdx].count < 2) { - // "Error: Invalid Path Data" - PRINTF("Error : レールデータ が不正(%s %d)\n", "../z_en_gr.c", 1043); + PRINTF(T("Error : レールデータ が不正(%s %d)\n", "Error : Rail data is invalid (%s %d)\n"), "../z_en_gr.c", + 1043); Actor_Kill(&this->actor); return; } @@ -585,9 +586,9 @@ void EnGoroiwa_Init(Actor* thisx, PlayState* play) { EnGoroiwa_InitRotation(this); EnGoroiwa_FaceNextWaypoint(this, play); EnGoroiwa_SetupRoll(this); - // "(Goroiwa)" - PRINTF("(ごろ岩)(arg 0x%04x)(rail %d)(end %d)(bgc %d)(hit %d)\n", this->actor.params, - PARAMS_GET_U(this->actor.params, 0, 8), PARAMS_GET_U(this->actor.params, 8, 2), + PRINTF(T("(ごろ岩)(arg 0x%04x)(rail %d)(end %d)(bgc %d)(hit %d)\n", + "(Goroiwa)(arg 0x%04x)(rail %d)(end %d)(bgc %d)(hit %d)\n"), + this->actor.params, PARAMS_GET_U(this->actor.params, 0, 8), PARAMS_GET_U(this->actor.params, 8, 2), PARAMS_GET_U(this->actor.params, 10, 1), this->actor.home.rot.z & 1); } @@ -625,7 +626,7 @@ void EnGoroiwa_Roll(EnGoroiwa* this, PlayState* play) { } Actor_SetPlayerKnockbackLarge(play, &this->actor, 2.0f, this->actor.yawTowardsPlayer, 0.0f, 0); PRINTF_COLOR_CYAN(); - PRINTF("Player ぶっ飛ばし\n"); // "Player knocked down" + PRINTF(T("Player ぶっ飛ばし\n", "Player knocked down\n")); PRINTF_RST(); onHitSetupFuncs[PARAMS_GET_U(this->actor.params, 10, 1)](this); Player_PlaySfx(GET_PLAYER(play), NA_SE_PL_BODY_HIT); diff --git a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c index 0736896895..4236fe05bd 100644 --- a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c +++ b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c @@ -17,6 +17,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64debug_display.h" #include "z64effect.h" @@ -97,27 +98,32 @@ void EnHeishi1_Init(Actor* thisx, PlayState* play2) { this->animParams[i] = sAnimParamsInit[this->type][i]; } - // "type" - PRINTF(VT_FGCOL(GREEN) " 種類☆☆☆☆☆☆☆☆☆☆☆☆☆ %d\n" VT_RST, this->type); - // "path data" + PRINTF(VT_FGCOL(GREEN) T(" 種類☆☆☆☆☆☆☆☆☆☆☆☆☆ %d\n", " type ☆☆☆☆☆☆☆☆☆☆☆☆☆ %d\n") VT_RST, + this->type); PRINTF(VT_FGCOL(YELLOW) " れえるでぇたぁ☆☆☆☆☆☆☆☆ %d\n" VT_RST, this->path); PRINTF(VT_FGCOL(MAGENTA) " anime_frame_speed ☆☆☆☆☆☆ %f\n" VT_RST, this->animSpeed); - // "interpolation frame" - PRINTF(VT_FGCOL(MAGENTA) " 補間フレーム☆☆☆☆☆☆☆☆☆ %f\n" VT_RST, this->animMorphFrames); - // "targeted movement speed value between points" - PRINTF(VT_FGCOL(MAGENTA) " point間の移動スピード目標値 ☆ %f\n" VT_RST, this->moveSpeedTarget); - // "maximum movement speed value between points" - PRINTF(VT_FGCOL(MAGENTA) " point間の移動スピード最大 ☆☆ %f\n" VT_RST, this->moveSpeedMax); - // "(body) targeted turning angle speed value" - PRINTF(VT_FGCOL(MAGENTA) " (体)反転アングルスピード目標値 %f\n" VT_RST, this->bodyTurnSpeedTarget); - // "(body) maximum turning angle speed" - PRINTF(VT_FGCOL(MAGENTA) " (体)反転アングルスピード最大☆ %f\n" VT_RST, this->bodyTurnSpeedMax); - // "(head) targeted turning angle speed value" - PRINTF(VT_FGCOL(MAGENTA) " (頭)反転アングルスピード加算値 %f\n" VT_RST, this->headTurnSpeedScale); - // "(head) maximum turning angle speed" - PRINTF(VT_FGCOL(MAGENTA) " (頭)反転アングルスピード最大☆ %f\n" VT_RST, this->headTurnSpeedMax); - PRINTF(VT_FGCOL(GREEN) " 今時間 %d\n" VT_RST, ((void)0, gSaveContext.save.dayTime)); // "current time" - PRINTF(VT_FGCOL(YELLOW) " チェック時間 %d\n" VT_RST, CLOCK_TIME(17, 30) - 1); // "check time" + PRINTF(VT_FGCOL(MAGENTA) T(" 補間フレーム☆☆☆☆☆☆☆☆☆ %f\n", " interpolation frame ☆☆☆☆☆☆☆☆☆ %f\n") VT_RST, + this->animMorphFrames); + PRINTF(VT_FGCOL(MAGENTA) + T(" point間の移動スピード目標値 ☆ %f\n", " target speed of movement between points ☆ %f\n") VT_RST, + this->moveSpeedTarget); + PRINTF(VT_FGCOL(MAGENTA) + T(" point間の移動スピード最大 ☆☆ %f\n", " maximum speed of movement between points ☆☆ %f\n") VT_RST, + this->moveSpeedMax); + PRINTF(VT_FGCOL(MAGENTA) + T(" (体)反転アングルスピード目標値 %f\n", " (body) reversing angle speed target value %f\n") VT_RST, + this->bodyTurnSpeedTarget); + PRINTF(VT_FGCOL(MAGENTA) + T(" (体)反転アングルスピード最大☆ %f\n", " (body) maximum turning angle speed ☆ %f\n") VT_RST, + this->bodyTurnSpeedMax); + PRINTF(VT_FGCOL(MAGENTA) + T(" (頭)反転アングルスピード加算値 %f\n", " (head) reverse angle speed additional value %f\n") VT_RST, + this->headTurnSpeedScale); + PRINTF(VT_FGCOL(MAGENTA) + T(" (頭)反転アングルスピード最大☆ %f\n", " (head) maximum turning angle speed ☆ %f\n") VT_RST, + this->headTurnSpeedMax); + PRINTF(VT_FGCOL(GREEN) T(" 今時間 %d\n", " Current time %d\n") VT_RST, ((void)0, gSaveContext.save.dayTime)); + PRINTF(VT_FGCOL(YELLOW) T(" チェック時間 %d\n", " Check time %d\n") VT_RST, CLOCK_TIME(17, 30) - 1); PRINTF("\n\n"); if (this->path == 3) { @@ -389,7 +395,7 @@ void EnHeishi1_WaitNight(EnHeishi1* this, PlayState* play) { if (this->actor.xzDistToPlayer < 100.0f) { Message_StartTextbox(play, 0x702D, &this->actor); Sfx_PlaySfxCentered(NA_SE_SY_FOUND); - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST); // "Discovered!" + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発見! ☆☆☆☆☆ \n", "☆☆☆☆☆ Discovered! ☆☆☆☆☆ \n") VT_RST); Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1); this->actionFunc = EnHeishi1_SetupKick; } @@ -472,8 +478,8 @@ void EnHeishi1_Update(Actor* thisx, PlayState* play) { // this 60 unit height check is so the player doesn't get caught when on the upper path if (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 60.0f) { Sfx_PlaySfxCentered(NA_SE_SY_FOUND); - // "Discovered!" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発見! ☆☆☆☆☆ \n", "☆☆☆☆☆ Discovered! ☆☆☆☆☆ \n") + VT_RST); Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1); sPlayerIsCaught = true; this->actionFunc = EnHeishi1_SetupMoveToLink; diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index c071d40c53..f9d5999c88 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -16,6 +16,7 @@ #include "sfx.h" #include "sys_matrix.h" #include "terminal.h" +#include "translation.h" #include "z_lib.h" #include "z64face_reaction.h" #include "z64play.h" @@ -153,8 +154,8 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { break; case 6: PRINTF("\n\n"); - // "Peep hole soldier!" - PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 覗き穴奥兵士ふぃ〜 ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 覗き穴奥兵士ふぃ〜 ☆☆☆☆☆ \n", " ☆☆☆☆☆ Peep hole soldier ☆☆☆☆☆ \n") + VT_RST); Collider_DestroyCylinder(play, collider); this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actionFunc = EnHeishi_DoNothing2; @@ -163,12 +164,14 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { this->unk_2F0 = PARAMS_GET_U(this->actor.params, 8, 8); PRINTF("\n\n"); - // "Soldier Set 2 Completed!" - PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 兵士2セット完了! ☆☆☆☆☆ %d\n" VT_RST, this->actor.params); - // "Identification Completed!" - PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ 識別完了! ☆☆☆☆☆ %d\n" VT_RST, this->type); - // "Message completed!" - PRINTF(VT_FGCOL(MAGENTA) " ☆☆☆☆☆ メッセージ完了! ☆☆☆☆☆ %x\n\n" VT_RST, + PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 兵士2セット完了! ☆☆☆☆☆ %d\n", " ☆☆☆☆☆ Soldier Set 2 Completed! ☆☆☆☆☆ %d\n") + VT_RST, + this->actor.params); + PRINTF(VT_FGCOL(YELLOW) T(" ☆☆☆☆☆ 識別完了! ☆☆☆☆☆ %d\n", " ☆☆☆☆☆ Identification Completed! ☆☆☆☆☆ %d\n") + VT_RST, + this->type); + PRINTF(VT_FGCOL(MAGENTA) + T(" ☆☆☆☆☆ メッセージ完了! ☆☆☆☆☆ %x\n\n", " ☆☆☆☆☆ Message completed! ☆☆☆☆☆ %x\n\n") VT_RST, PARAMS_GET_U(this->actor.params, 8, 4)); } } @@ -203,41 +206,39 @@ void func_80A53278(EnHeishi2* this, PlayState* play) { this->unk_300 = TEXT_STATE_DONE; this->actionFunc = func_80A5475C; } else if (GET_EVENTCHKINF(EVENTCHKINF_09) && GET_EVENTCHKINF(EVENTCHKINF_25) && GET_EVENTCHKINF(EVENTCHKINF_37)) { - // "Get all spiritual stones!" - PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 全部の精霊石GET! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 全部の精霊石GET! ☆☆☆☆☆ \n", " ☆☆☆☆☆ All the spirit stones GET! ☆☆☆☆☆ \n") + VT_RST); this->unk_300 = TEXT_STATE_DONE; this->actor.textId = 0x7006; this->actionFunc = func_80A5475C; } else if (!IS_DAY) { - // "Sleep early for children!" - PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ 子供ははやくネロ! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(YELLOW) T(" ☆☆☆☆☆ 子供ははやくネロ! ☆☆☆☆☆ \n", " ☆☆☆☆☆ Sleep early for children! ☆☆☆☆☆ \n") + VT_RST); this->unk_300 = TEXT_STATE_DONE; this->actor.textId = 0x7002; this->actionFunc = func_80A5475C; } else if (this->unk_30C != 0) { - // "Anything passes" - PRINTF(VT_FGCOL(BLUE) " ☆☆☆☆☆ なんでも通るよ ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(BLUE) T(" ☆☆☆☆☆ なんでも通るよ ☆☆☆☆☆ \n", " ☆☆☆☆☆ Anything passes ☆☆☆☆☆ \n") VT_RST); this->unk_300 = TEXT_STATE_DONE; this->actor.textId = 0x7099; this->actionFunc = func_80A5475C; } else if (GET_EVENTCHKINF(EVENTCHKINF_RECEIVED_WEIRD_EGG)) { if (this->unk_30E == 0) { - // "Start under the first sleeve!" - PRINTF(VT_FGCOL(MAGENTA) " ☆☆☆☆☆ 1回目袖の下開始! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(MAGENTA) + T(" ☆☆☆☆☆ 1回目袖の下開始! ☆☆☆☆☆ \n", " ☆☆☆☆☆ Start under the first sleeve! ☆☆☆☆☆ \n") VT_RST); this->actor.textId = 0x7071; this->unk_30E = 1; } else { - // "Start under the second sleeve!" - PRINTF(VT_FGCOL(MAGENTA) " ☆☆☆☆☆ 2回目袖の下開始! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(MAGENTA) T(" ☆☆☆☆☆ 2回目袖の下開始! ☆☆☆☆☆ \n", + " ☆☆☆☆☆ Start under the second sleeve! ☆☆☆☆☆ \n") VT_RST); this->actor.textId = 0x7072; } this->unk_300 = TEXT_STATE_CHOICE; this->actionFunc = func_80A5475C; } else { - // "That's okay" - PRINTF(VT_FGCOL(CYAN) " ☆☆☆☆☆ それはとおらんよぉ ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(CYAN) T(" ☆☆☆☆☆ それはとおらんよぉ ☆☆☆☆☆ \n", " ☆☆☆☆☆ That won't work ☆☆☆☆☆ \n") VT_RST); this->unk_300 = TEXT_STATE_DONE; this->actor.textId = 0x7029; this->actionFunc = func_80A5475C; @@ -310,8 +311,9 @@ void func_80A53638(EnHeishi2* this, PlayState* play) { break; } } - // "I've come!" - PRINTF(VT_FGCOL(MAGENTA) "☆☆☆ きたきたきたぁ! ☆☆☆ %x\n" VT_RST, actor->dyna.actor.next); + PRINTF(VT_FGCOL(MAGENTA) T("☆☆☆ きたきたきたぁ! ☆☆☆ %x\n", "☆☆☆ It's here, it's here, it's here! ☆☆☆ %x\n") + VT_RST, + actor->dyna.actor.next); this->actionFunc = func_80A5372C; } } @@ -395,8 +397,8 @@ void func_80A5399C(EnHeishi2* this, PlayState* play) { } this->actionFunc = func_80A5475C; } else { - // "I don't know" - PRINTF(VT_FGCOL(MAGENTA) " ☆☆☆☆☆ とおしゃしねぇちゅーの ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(MAGENTA) T(" ☆☆☆☆☆ とおしゃしねぇちゅーの ☆☆☆☆☆ \n", " ☆☆☆☆☆ There is no way out ☆☆☆☆☆ \n") + VT_RST); this->actionFunc = func_80A53AD4; } } @@ -477,8 +479,9 @@ void func_80A53D0C(EnHeishi2* this, PlayState* play) { break; } } - // "I've come!" - PRINTF(VT_FGCOL(MAGENTA) "☆☆☆ きたきたきたぁ! ☆☆☆ %x\n" VT_RST, gate->dyna.actor.next); + PRINTF(VT_FGCOL(MAGENTA) T("☆☆☆ きたきたきたぁ! ☆☆☆ %x\n", "☆☆☆ It's here, it's here, it's here! ☆☆☆ %x\n") + VT_RST, + gate->dyna.actor.next); this->actionFunc = func_80A53DF8; } } @@ -679,8 +682,7 @@ void func_80A5455C(EnHeishi2* this, PlayState* play) { bomb->actor.velocity.y = Rand_CenteredFloat(5.0f) + 10.0f; } - // "This is down!" - PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ これでダウンだ! ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(YELLOW) T(" ☆☆☆☆☆ これでダウンだ! ☆☆☆☆☆ \n", " ☆☆☆☆☆ This is down! ☆☆☆☆☆ \n") VT_RST); this->actionFunc = func_80A546DC; } } diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index 354c3f3058..8e03fe3e62 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -11,6 +11,7 @@ #include "printf.h" #include "sfx.h" #include "terminal.h" +#include "translation.h" #include "versions.h" #include "z_lib.h" #include "z64play.h" @@ -87,8 +88,8 @@ void EnHeishi3_Init(Actor* thisx, PlayState* play) { this->actor.attentionRangeType = ATTENTION_RANGE_6; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); - // "Castle Gate Soldier - Power Up" - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 城門兵パワーアップ ☆☆☆☆☆ \n" VT_RST); + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 城門兵パワーアップ ☆☆☆☆☆ \n", "☆☆☆☆☆ Castle gate soldier power-up ☆☆☆☆☆ \n") + VT_RST); this->actor.gravity = -3.0f; this->actor.focus.pos = this->actor.world.pos; @@ -143,7 +144,7 @@ void EnHeishi3_StandSentinelInGrounds(EnHeishi3* this, PlayState* play) { sPlayerCaught = 1; Message_StartTextbox(play, 0x702D, &this->actor); Sfx_PlaySfxCentered(NA_SE_SY_FOUND); - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST); // "Discovered!" + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発見! ☆☆☆☆☆ \n", "☆☆☆☆☆ Discovered! ☆☆☆☆☆ \n") VT_RST); Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1); #if OOT_PAL_N64 this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_UPDATE_CULLING_DISABLED; @@ -174,7 +175,7 @@ void EnHeishi3_StandSentinelInCastle(EnHeishi3* this, PlayState* play) { sPlayerCaught = 1; Message_StartTextbox(play, 0x702D, &this->actor); Sfx_PlaySfxCentered(NA_SE_SY_FOUND); - PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST); // "Discovered!" + PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発見! ☆☆☆☆☆ \n", "☆☆☆☆☆ Discovered! ☆☆☆☆☆ \n") VT_RST); Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1); #if OOT_PAL_N64 this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_UPDATE_CULLING_DISABLED;