diff options
-rw-r--r-- | data-de/event_scripts.s | 11 | ||||
-rw-r--r-- | data-de/text/bard.inc | 18 | ||||
-rw-r--r-- | include/global.h | 2 | ||||
-rw-r--r-- | src/mauville_old_man.c | 70 |
4 files changed, 48 insertions, 53 deletions
diff --git a/data-de/event_scripts.s b/data-de/event_scripts.s index 4d809241c..a6bb9e015 100644 --- a/data-de/event_scripts.s +++ b/data-de/event_scripts.s @@ -4771,16 +4771,7 @@ BattleTower_Lobby_EventScript_1AE30F:: @ 81AE30F .include "data/scripts/gabby_and_ty.inc" - .include "data/scripts/bard.inc" - .include "data/scripts/hipster.inc" - .include "data/text/trader.inc" - .include "data/scripts/trader.inc" - .include "data/text/storyteller.inc" - .include "data/scripts/storyteller.inc" - .include "data/text/giddy.inc" - .include "data/scripts/giddy.inc" - .include "data/text/bard.inc" - .include "data/text/hipster.inc" + .include "data/scripts/mauville_man.inc" .include "data/field_move_scripts.inc" .include "data/item_ball_scripts.inc" diff --git a/data-de/text/bard.inc b/data-de/text/bard.inc index 089741d00..dbfb7d400 100644 --- a/data-de/text/bard.inc +++ b/data-de/text/bard.inc @@ -1,20 +1,20 @@ -UnknownString_81B0A83: @ 81B0A83 +gTextBard_BardTesting: @ 81B0A83 .string "BARDEN Test.$" -MauvilleCity_PokemonCenter_1F_Text_1B0A91:: @ 81B0A91 +gTextBard_HiImTheBard:: @ 81B0A91 .string "Hallo, ich bin der BARDE.\n" .string "Möchtest du meinem Lied lauschen?$" -MauvilleCity_PokemonCenter_1F_Text_1B0AC3:: @ 81B0AC3 +gTextBard_OhYouveLeftMe:: @ 81B0AC3 .string "Oh...\n" .string "Du überlässt mich meinem Blues?$" -MauvilleCity_PokemonCenter_1F_Text_1B0AED:: @ 81B0AED +gTextBard_OhWhatAMovingSong:: @ 81B0AED .string "Hach, was für ein bewegendes Lied...\n" .string "Ich wünschte, ich könnte es für\l" .string "andere spielen...$" -MauvilleCity_PokemonCenter_1F_Text_1B0B2C:: @ 81B0B2C +gTextBard_SoHowDoYouLikeMySong:: @ 81B0B2C .string "So?\n" .string "Wie fandest du mein Lied?\p" .string "Ich bin noch nicht ganz zufrieden mit\n" @@ -22,17 +22,17 @@ MauvilleCity_PokemonCenter_1F_Text_1B0B2C:: @ 81B0B2C .string "Hast du nicht Lust, den Text für mich\n" .string "neu zu schreiben?$" -MauvilleCity_PokemonCenter_1F_Text_1B0BA6:: @ 81B0BA6 +gTextBard_OhYouveLeftMe2:: @ 81B0BA6 .string "Oh... Und wieder werde ich meinem\n" .string "Blues überlassen.$" -MauvilleCity_PokemonCenter_1F_Text_1B0BD0:: @ 81B0BD0 +gTextBard_ThankYouKindly:: @ 81B0BD0 .string "Vielen herzlichen Dank!\n" .string "Ich möchte für dich singen.$" -MauvilleCity_PokemonCenter_1F_Text_1B0BFA:: @ 81B0BFA +gTextBard_WasThatHowYouWanted:: @ 81B0BFA .string "Hast du dir dein Lied so vorgestellt?$" -MauvilleCity_PokemonCenter_1F_Text_1B0C23:: @ 81B0C23 +gTextBard_OkayThatsIt:: @ 81B0C23 .string "Okay! Das ist es! Dieses Lied werde\n" .string "ich nun für eine Weile singen.$" diff --git a/include/global.h b/include/global.h index 32a6beb2b..6c0fc28ef 100644 --- a/include/global.h +++ b/include/global.h @@ -460,7 +460,7 @@ struct MauvilleManBard /*0x00*/ u8 id; /*0x01*/ u8 unk_2D95; /*0x02*/ u16 songLyrics[6]; - /*0x0E*/ u16 mauvilleOldMan_ecArray2[6]; + /*0x0E*/ u16 temporaryLyrics[6]; /*0x1A*/ u8 playerName[8]; /*0x22*/ u8 filler_2DB6[0x3]; /*0x25*/ u8 playerTrainerId[4]; diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 3bf682ca0..4edcb1417 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -314,28 +314,29 @@ void ScrSpecial_SaveBardSongLyrics(void) bard->playerTrainerId[i] = gSaveBlock2.playerTrainerId[i]; for (i = 0; i < 6; i++) - bard->songLyrics[i] = bard->mauvilleOldMan_ecArray2[i]; + bard->songLyrics[i] = bard->temporaryLyrics[i]; bard->hasChangedSong = TRUE; } +// prepare song? void sub_80F7BA0(void) { struct MauvilleManBard *bard = &gSaveBlock1.mauvilleMan.bard; u16 specialVar = gSpecialVar_0x8004; // It's a bit odd to use this temp variable, but it seems needed to match. - u16 *r5; + u16 *lyrics; u16 i; u8 *ptr; u8 *r4; - r5 = bard->mauvilleOldMan_ecArray2; + lyrics = bard->temporaryLyrics; if (specialVar == 0) - r5 = bard->songLyrics; + lyrics = bard->songLyrics; ptr = gStringVar4; r4 = ptr; for (i = 0; i < 2; i++) { - ptr = sub_80EB3FC(ptr, *(r5++)); + ptr = sub_80EB3FC(ptr, *(lyrics++)); while (ptr != r4) { if (*r4 == 0) @@ -344,7 +345,7 @@ void sub_80F7BA0(void) } r4++; *(ptr++) = CHAR_SPACE; - ptr = sub_80EB3FC(ptr, *(r5++)); + ptr = sub_80EB3FC(ptr, *(lyrics++)); while (ptr != r4) { if (*r4 == 0) @@ -353,7 +354,7 @@ void sub_80F7BA0(void) } r4++; *(ptr++) = CHAR_NEWLINE; - ptr = sub_80EB3FC(ptr, *(r5++)); + ptr = sub_80EB3FC(ptr, *(lyrics++)); while (ptr != r4) { if (*r4 == 0) @@ -780,7 +781,7 @@ void BardSingWord(struct Task *task, struct UnkBard2 *b) if (gSpecialVar_0x8004 == 0) r2 = bard->songLyrics; else - r2 = bard->mauvilleOldMan_ecArray2; + r2 = bard->temporaryLyrics; for (i = 0; i < 6; i++) b->var0C[i] = r2[i]; for (i = 0; i < 6; i++) @@ -868,12 +869,15 @@ void BardSingWord(struct Task *task, struct UnkBard2 *b) } } +#define tState data[0] +#define tCharIndex data[3] + void Task_BardSong(u8 taskId) { struct Task *task = &gTasks[taskId]; // r5 BardSingWord(task, &gUnknown_03005DA0); - switch (task->data[0]) + switch (task->tState) { case 0: sub_80F7BA0(); @@ -881,19 +885,19 @@ void Task_BardSong(u8 taskId) sub_8002EB0(gMenuWindowPtr, gStringVar4, 2, 4, 15); task->data[1] = 0; task->data[2] = 0; - task->data[3] = 0; + task->tCharIndex = 0; task->data[4] = 0; FadeOutBGMTemporarily(4); - task->data[0] = 1; + task->tState = 1; break; case 1: if (IsBGMPausedOrStopped()) - task->data[0] = 2; + task->tState = 2; break; case 2: { struct MauvilleManBard *bard = &gSaveBlock1.mauvilleMan.bard; - u8 *string = gStringVar4 + task->data[3]; + u8 *string = gStringVar4 + task->tCharIndex; u16 wordLen = 0; // Can't get it to match without hacking u32 temp; @@ -910,7 +914,7 @@ void Task_BardSong(u8 taskId) if (task->data[5] == 0) gUnknown_020388BC = MACRO1(bard->songLyrics[task->data[4]]); else - gUnknown_020388BC = MACRO1(bard->mauvilleOldMan_ecArray2[task->data[4]]); + gUnknown_020388BC = MACRO1(bard->temporaryLyrics[task->data[4]]); temp = gUnknown_03005DA0.var04 / wordLen; zero = 0; gUnknown_03005DA0.var04 = temp; @@ -918,50 +922,50 @@ void Task_BardSong(u8 taskId) gUnknown_03005DA0.var04 = 1; task->data[4]++; if (task->data[2] == 0) - task->data[0] = 3; + task->tState = 3; else - task->data[0] = 5; + task->tState = 5; task->data[1] = zero; } break; case 5: if (task->data[2] == 0) - task->data[0] = 3; + task->tState = 3; else task->data[2]--; break; case 3: - if (gStringVar4[task->data[3]] == EOS) + if (gStringVar4[task->tCharIndex] == EOS) { FadeInNewBGM(BGM_POKECEN, 6); m4aMPlayFadeOutTemporarily(&gMPlay_SE2, 2); EnableBothScriptContexts(); DestroyTask(taskId); } - else if (gStringVar4[task->data[3]] == CHAR_SPACE) + else if (gStringVar4[task->tCharIndex] == CHAR_SPACE) { sub_8003418(gMenuWindowPtr); - task->data[3]++; - task->data[0] = 2; + task->tCharIndex++; + task->tState = 2; task->data[2] = 0; } - else if (gStringVar4[task->data[3]] == CHAR_NEWLINE) + else if (gStringVar4[task->tCharIndex] == CHAR_NEWLINE) { - task->data[3]++; - task->data[0] = 2; + task->tCharIndex++; + task->tState = 2; task->data[2] = 0; } - else if (gStringVar4[task->data[3]] == EXT_CTRL_CODE_BEGIN) + else if (gStringVar4[task->tCharIndex] == EXT_CTRL_CODE_BEGIN) { - task->data[3] += 2; // skip over control codes - task->data[0] = 2; + task->tCharIndex += 2; // skip over control codes + task->tState = 2; task->data[2] = 8; } - else if (gStringVar4[task->data[3]] == 0x37) // What is 0x37 supposed to be? + else if (gStringVar4[task->tCharIndex] == 0x37) // What is 0x37 supposed to be? { - gStringVar4[task->data[3]] = 0; + gStringVar4[task->tCharIndex] = CHAR_SPACE; sub_8003418(gMenuWindowPtr); - task->data[3]++; + task->tCharIndex++; task->data[2] = 0; } else @@ -976,10 +980,10 @@ void Task_BardSong(u8 taskId) task->data[1]++; break; case 2: - task->data[3]++; + task->tCharIndex++; task->data[1] = 0; task->data[2] = gUnknown_03005DA0.var04; - task->data[0] = 4; + task->tState = 4; break; } } @@ -987,7 +991,7 @@ void Task_BardSong(u8 taskId) case 4: task->data[2]--; if (task->data[2] == 0) - task->data[0] = 3; + task->tState = 3; break; } } |