Merge branch 'main' into doc/cutscene_index

This commit is contained in:
Dragorn421 2025-05-27 21:30:08 +02:00
commit 772db061ec
No known key found for this signature in database
GPG Key ID: 381AEBAF3D429335
37 changed files with 292 additions and 259 deletions

View File

@ -709,10 +709,10 @@
<Animation Name="gFishInWaterAnim" Offset="0x1953C"/>
<Texture Name="gEffShockwaveTex" OutName="eff_shockwave" Format="i8" Width="64" Height="64" Offset="0x19550"/>
<DList Name="gEffShockwaveDL" Offset="0x1A550"/>
<DList Name="gEffBubbleDL" Offset="0x1A600"/>
<Array Name="gGameplayKeepVtx_01A120" Count="4" Offset="0x1A5C0">
<Vtx/>
</Array>
<DList Name="gEffBubbleDL" Offset="0x1A600"/>
<Texture Name="gEffFireFootprint1Tex" OutName="eff_fire_footprint_1" Format="ia8" Width="32" Height="32" Offset="0x1A6C0"/>
<Texture Name="gEffFireFootprint2Tex" OutName="eff_fire_footprint_2" Format="ia8" Width="32" Height="32" Offset="0x1AAC0"/>

View File

@ -697,16 +697,16 @@
<Texture Name="gEffUnknown5Tex" OutName="eff_unknown_5" Format="i8" Width="32" Height="64" Offset="0x17BD0"/>
<DList Name="gEffFireCircleDL" Offset="0x184B0"/>
<Animation Name="gFishOutOfWaterAnim" Offset="0x185FC"/>
<Skeleton Name="gFishSkel" Type="Flex" LimbType="Standard" Offset="0x18FE0"/>
<Animation Name="gFishInWaterAnim" Offset="0x1909C"/>
<Texture Name="gFishTailTex" OutName="fish_tail" Format="rgba16" Width="16" Height="16" Offset="0x18B80"/>
<Texture Name="gFishBodyTex" OutName="fish_body" Format="rgba16" Width="32" Height="8" Offset="0x18D80"/>
<Skeleton Name="gFishSkel" Type="Flex" LimbType="Standard" Offset="0x18FE0"/>
<Animation Name="gFishInWaterAnim" Offset="0x1909C"/>
<Texture Name="gEffShockwaveTex" OutName="eff_shockwave" Format="i8" Width="64" Height="64" Offset="0x190B0"/>
<DList Name="gEffShockwaveDL" Offset="0x1A0B0"/>
<DList Name="gEffBubbleDL" Offset="0x1A160"/>
<Array Name="gGameplayKeepVtx_01A120" Count="4" Offset="0x1A120">
<Vtx/>
</Array>
<DList Name="gEffBubbleDL" Offset="0x1A160"/>
<Texture Name="gEffFireFootprint1Tex" OutName="eff_fire_footprint_1" Format="ia8" Width="32" Height="32" Offset="0x1A220"/>
<Texture Name="gEffFireFootprint2Tex" OutName="eff_fire_footprint_2" Format="ia8" Width="32" Height="32" Offset="0x1A620"/>
@ -841,9 +841,9 @@
<DList Name="gBugLimb9DL" Offset="0x34990"/>
<DList Name="gBugLimb9WrapperDL" Offset="0x34A40"/>
<DList Name="gBugLimb9WrapperWrapperDL" Offset="0x34A50"/>
<Skeleton Name="gBugSkel" Type="Normal" LimbType="Standard" Offset="0x35590"/>
<Texture Name="gBugBodyTex" OutName="bug_body" Format="rgba16" Width="16" Height="64" Offset="0x34B20"/>
<Texture Name="gBugLegTex" OutName="bug_leg" Format="rgba16" Width="8" Height="16" Offset="0x35320"/>
<Skeleton Name="gBugSkel" Type="Normal" LimbType="Standard" Offset="0x35590"/>
<DList Name="gCuttableShrubStalkDL" Offset="0x355E0"/>
<DList Name="gCuttableShrubTipDL" Offset="0x356A0"/>
<Texture Name="gCuttableShrubLeafTFragmentTex" OutName="cuttable_shrub_leaf_fragment" Format="rgba16" Width="32" Height="32" Offset="0x35730"/>
@ -898,8 +898,8 @@
<Texture Name="gRupeeGreenTex" OutName="rupee_green" Format="rgba16" Width="4" Height="4" Offset="0x42140"/>
<Texture Name="gRupeeBlueTex" OutName="rupee_blue" Format="rgba16" Width="4" Height="4" Offset="0x42160"/>
<Texture Name="gRupeeRedTex" OutName="rupee_red" Format="rgba16" Width="4" Height="4" Offset="0x42180"/>
<Texture Name="gRupeePinkTex" OutName="rupee_pink" Format="rgba16" Width="4" Height="4" Offset="0x421C0"/>
<Texture Name="gRupeeOrangeTex" OutName="rupee_orange" Format="rgba16" Width="4" Height="4" Offset="0x421A0"/>
<Texture Name="gRupeePinkTex" OutName="rupee_pink" Format="rgba16" Width="4" Height="4" Offset="0x421C0"/>
<Texture Name="gRupeeSilverTex" OutName="rupee_silver" Format="rgba16" Width="4" Height="4" Offset="0x421E0"/>
<DList Name="gRupeeDL" Offset="0x42440"/>
<Texture Name="gRupeeLightRedTex" OutName="rupee_light_red" Format="rgba16" Width="4" Height="4" Offset="0x42510"/>

View File

@ -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);
}
}

View File

@ -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 == NEXT_CS_INDEX_NONE) {
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 = CS_INDEX_NIGHT;
}
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;

View File

@ -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)) {

View File

@ -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);

View File

@ -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;
}

View File

@ -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--;

View File

@ -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) {

View File

@ -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;

View File

@ -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);
}
}
}

View File

@ -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;

View File

@ -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) {

View File

@ -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]);
}
}

View File

@ -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) "☆☆☆☆☆ シールド防御 Lv ☆☆☆☆☆ \n" VT_RST);
PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ シールド防御 Lv ☆☆☆☆☆ \n", "☆☆☆☆☆ Shield Defense Lv1 ☆☆☆☆☆ \n")
VT_RST);
return;
}
setCollision = true;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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"
@ -104,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
@ -131,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);
@ -149,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);
@ -163,10 +163,9 @@ 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);
// "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", " 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;

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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(" : arg_data が不正(%s %d)(arg_data 0x%04x)\n", "../z_en_gr.c", 1033, this->actor.params);
PRINTF(T(" : 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(" : レールデータ が不正(%s %d)\n", "../z_en_gr.c", 1043);
PRINTF(T(" : レールデータ が不正(%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);

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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) {

View File

@ -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) {

View File

@ -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();
}
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 {

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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,
)
]