diff options
-rw-r--r-- | asm/tv.s | 386 | ||||
-rw-r--r-- | include/global.h | 2 | ||||
-rw-r--r-- | src/tv.c | 99 |
3 files changed, 98 insertions, 389 deletions
@@ -3659,390 +3659,4 @@ _080C1028: .4byte gStringVar1 _080C102C: .4byte gTVSmartShopperTextGroup thumb_func_end DoTVShowTodaysSmartShopper - thumb_func_start DoTVShowTheNameRaterShow -DoTVShowTheNameRaterShow: @ 80C1030 - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, _080C1060 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1064 @ =gSaveBlock1 + 0x2738 - adds r6, r0, r1 - ldr r1, _080C1068 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C106C @ =gUnknown_020387E8 - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0x12 - bls _080C1054 - b _080C138A -_080C1054: - lsls r0, r7, 2 - ldr r1, _080C1070 @ =_080C1074 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1060: .4byte gSpecialVar_0x8004 -_080C1064: .4byte gSaveBlock1 + 0x2738 -_080C1068: .4byte gScriptResult -_080C106C: .4byte gUnknown_020387E8 -_080C1070: .4byte _080C1074 - .align 2, 0 -_080C1074: - .4byte _080C10C0 - .4byte _080C1108 - .4byte _080C112A - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1170 - .4byte _080C1170 - .4byte _080C1170 - .4byte _080C136C - .4byte _080C11CC - .4byte _080C1228 - .4byte _080C127C - .4byte _080C12D4 - .4byte _080C1314 - .4byte _080C1370 -_080C10C0: - ldr r0, _080C10F4 @ =gStringVar1 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl TVShowConvertInternationalString - ldr r0, _080C10F8 @ =gStringVar2 - ldrh r2, [r6, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C10FC @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C1100 @ =gStringVar3 - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - bl TVShowConvertInternationalString - ldr r4, _080C1104 @ =gUnknown_020387E8 - adds r0, r6, 0 - bl sub_80BF7E8 - adds r0, 0x1 - strb r0, [r4] - b _080C138A - .align 2, 0 -_080C10F4: .4byte gStringVar1 -_080C10F8: .4byte gStringVar2 -_080C10FC: .4byte gSpeciesNames -_080C1100: .4byte gStringVar3 -_080C1104: .4byte gUnknown_020387E8 -_080C1108: - ldrb r0, [r6, 0x1A] - cmp r0, 0 - bne _080C1114 - movs r0, 0x9 - strb r0, [r2] - b _080C138A -_080C1114: - cmp r0, 0x1 - bne _080C111E - movs r0, 0xA - strb r0, [r2] - b _080C138A -_080C111E: - cmp r0, 0x2 - beq _080C1124 - b _080C138A -_080C1124: - movs r0, 0xB - strb r0, [r2] - b _080C138A -_080C112A: - ldr r0, _080C1144 @ =gStringVar1 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl TVShowConvertInternationalString - ldrb r0, [r6, 0x1A] - cmp r0, 0 - bne _080C114C - ldr r1, _080C1148 @ =gUnknown_020387E8 - movs r0, 0x9 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1144: .4byte gStringVar1 -_080C1148: .4byte gUnknown_020387E8 -_080C114C: - cmp r0, 0x1 - bne _080C115C - ldr r1, _080C1158 @ =gUnknown_020387E8 - movs r0, 0xA - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1158: .4byte gUnknown_020387E8 -_080C115C: - cmp r0, 0x2 - beq _080C1162 - b _080C138A -_080C1162: - ldr r1, _080C116C @ =gUnknown_020387E8 - movs r0, 0xB - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C116C: .4byte gUnknown_020387E8 -_080C1170: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C11BC @ =gStringVar3 - ldr r4, _080C11C0 @ =gStringVar1 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl TVShowConvertInternationalString - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C11C4 @ =gStringVar2 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl TVShowConvertInternationalString - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - adds r0, r4, 0 - bl TVShowConvertInternationalString - ldr r1, _080C11C8 @ =gUnknown_020387E8 - movs r0, 0xC - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C11BC: .4byte gStringVar3 -_080C11C0: .4byte gStringVar1 -_080C11C4: .4byte gStringVar2 -_080C11C8: .4byte gUnknown_020387E8 -_080C11CC: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1218 @ =gStringVar3 - ldr r4, _080C121C @ =gStringVar1 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl TVShowConvertInternationalString - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_80BF820 - ldr r0, _080C1220 @ =gStringVar2 - ldrb r2, [r6, 0x1E] - adds r1, r4, 0 - bl TVShowConvertInternationalString - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - adds r0, r4, 0 - bl TVShowConvertInternationalString - ldr r1, _080C1224 @ =gUnknown_020387E8 - movs r0, 0xE - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1218: .4byte gStringVar3 -_080C121C: .4byte gStringVar1 -_080C1220: .4byte gStringVar2 -_080C1224: .4byte gUnknown_020387E8 -_080C1228: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_80BF820 - ldr r0, _080C1270 @ =gStringVar3 - ldr r4, _080C1274 @ =gStringVar1 - ldrb r2, [r6, 0x1E] - adds r1, r4, 0 - bl TVShowConvertInternationalString - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1278 @ =gStringVar2 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl TVShowConvertInternationalString - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - adds r0, r4, 0 - bl TVShowConvertInternationalString - b _080C1354 - .align 2, 0 -_080C1270: .4byte gStringVar3 -_080C1274: .4byte gStringVar1 -_080C1278: .4byte gStringVar2 -_080C127C: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C12C4 @ =gStringVar1 - ldr r4, _080C12C8 @ =gStringVar2 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl TVShowConvertInternationalString - ldrh r1, [r6, 0x2] - movs r0, 0xB - muls r1, r0 - ldr r0, _080C12CC @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldrh r0, [r6, 0x2] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80BF820 - ldr r1, _080C12D0 @ =gUnknown_020387E8 - movs r0, 0x10 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C12C4: .4byte gStringVar1 -_080C12C8: .4byte gStringVar2 -_080C12CC: .4byte gSpeciesNames -_080C12D0: .4byte gUnknown_020387E8 -_080C12D4: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1308 @ =gStringVar3 - ldr r1, _080C130C @ =gStringVar1 - ldrb r2, [r6, 0x1F] - bl TVShowConvertInternationalString - ldrh r0, [r6, 0x2] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl sub_80BF820 - ldr r1, _080C1310 @ =gUnknown_020387E8 - movs r0, 0x11 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1308: .4byte gStringVar3 -_080C130C: .4byte gStringVar1 -_080C1310: .4byte gUnknown_020387E8 -_080C1314: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C135C @ =gStringVar1 - ldr r4, _080C1360 @ =gStringVar2 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl TVShowConvertInternationalString - ldrh r0, [r6, 0x1C] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80BF820 - ldrh r1, [r6, 0x1C] - movs r0, 0xB - muls r1, r0 - ldr r0, _080C1364 @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy -_080C1354: - ldr r1, _080C1368 @ =gUnknown_020387E8 - movs r0, 0x12 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C135C: .4byte gStringVar1 -_080C1360: .4byte gStringVar2 -_080C1364: .4byte gSpeciesNames -_080C1368: .4byte gUnknown_020387E8 -_080C136C: - movs r7, 0x12 - strb r7, [r2] -_080C1370: - ldr r0, _080C13A0 @ =gStringVar1 - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - bl TVShowConvertInternationalString - ldr r0, _080C13A4 @ =gStringVar2 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl TVShowConvertInternationalString - bl TVShowDone -_080C138A: - ldr r0, _080C13A8 @ =gTVNameRaterTextGroup - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C13A0: .4byte gStringVar1 -_080C13A4: .4byte gStringVar2 -_080C13A8: .4byte gTVNameRaterTextGroup - thumb_func_end DoTVShowTheNameRaterShow - .align 2, 0 @ Don't pad with nop. diff --git a/include/global.h b/include/global.h index a437a3b0d..3454ab0b8 100644 --- a/include/global.h +++ b/include/global.h @@ -269,7 +269,7 @@ struct TVShowNameRaterShow { /*0x1B*/ u8 random2; /*0x1C*/ u16 var1C; /*0x1E*/ u8 language; - /*0x1F*/ u8 var1F; + /*0x1F*/ u8 pokemonNameLanguage; }; struct TVShowMassOutbreak { @@ -145,7 +145,7 @@ void sub_80BE478(void) sub_80BE160(tvShow); tvShow->nameRaterShow.language = GAME_LANGUAGE; - tvShow->nameRaterShow.var1F = sub_80BDEAC(tvShow->nameRaterShow.pokemonName); + tvShow->nameRaterShow.pokemonNameLanguage = sub_80BDEAC(tvShow->nameRaterShow.pokemonName); StripExtCtrlCodes(tvShow->nameRaterShow.pokemonName); } @@ -1627,10 +1627,105 @@ void TVShowConvertInternationalString(u8 *, u8 *, u8); void TakeTVShowInSearchOfTrainersOffTheAir(void); +void DoTVShowTheNameRaterShow(void) { + TVShow *tvShow; + u8 switchval; + tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + gScriptResult = 0; + switchval = gUnknown_020387E8; + switch (switchval) { + case 0: + TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); + StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.species]); + TVShowConvertInternationalString(gStringVar3, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage); + gUnknown_020387E8 = sub_80BF7E8(&tvShow->nameRaterShow) + 1; + break; + case 1: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + if (tvShow->nameRaterShow.random == 0) { + gUnknown_020387E8 = 9; + } else if (tvShow->nameRaterShow.random == 1) { + gUnknown_020387E8 = 10; + } else if (tvShow->nameRaterShow.random == 2) { + gUnknown_020387E8 = 11; + } + break; + case 2: + TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); + if (tvShow->nameRaterShow.random == 0) { + gUnknown_020387E8 = 9; + } else if (tvShow->nameRaterShow.random == 1) { + gUnknown_020387E8 = 10; + } else if (tvShow->nameRaterShow.random == 2) { + gUnknown_020387E8 = 11; + } + break; + case 9: + case 10: + case 11: + sub_80BF820(0, 1, 0, 1, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); + sub_80BF820(0, 0, 0, 1, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); + TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage); + gUnknown_020387E8 = 12; + break; + case 13: + sub_80BF820(0, 0, 3, 1, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); + sub_80BF820(0, 0, 2, 0, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.language); + TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); + gUnknown_020387E8 = 14; + break; + case 14: + sub_80BF820(0, 0, 3, 0, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.language); + sub_80BF820(0, 0, 2, 1, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); + TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); + gUnknown_020387E8 = 18; + break; + case 15: + sub_80BF820(1, 0, 2, 1, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar1, gStringVar2, tvShow->nameRaterShow.pokemonNameLanguage); + StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.species]); + sub_80BF820(2, 0, 3, 2, tvShow->nameRaterShow.species, &tvShow->nameRaterShow); + gUnknown_020387E8 = 16; + break; + case 16: + sub_80BF820(0, 0, 3, 1, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); + sub_80BF820(0, 0, 2, 2, tvShow->nameRaterShow.species, &tvShow->nameRaterShow); + gUnknown_020387E8 = 17; + break; + case 17: + sub_80BF820(1, 0, 2, 1, 0, &tvShow->nameRaterShow); + TVShowConvertInternationalString(gStringVar1, gStringVar2, tvShow->nameRaterShow.pokemonNameLanguage); + sub_80BF820(2, 0, 3, 2, tvShow->nameRaterShow.var1C, &tvShow->nameRaterShow); + StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.var1C]); + gUnknown_020387E8 = 18; + break; + case 12: + switchval = 18; + gUnknown_020387E8 = 18; + case 18: + TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage); + TVShowConvertInternationalString(gStringVar2, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); + TVShowDone(); + break; + } + ShowFieldMessage(gTVNameRaterTextGroup[switchval]); +} + void DoTVShowPokemonTodaySuccessfulCapture(void) { TVShow *tvShow; u8 switchval; -// u16 rval; tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; gScriptResult = 0; switchval = gUnknown_020387E8; |