more fix
This commit is contained in:
+4
-4
@@ -6342,11 +6342,11 @@ sub_810B108: @ 810B108
|
|||||||
beq _0810B160
|
beq _0810B160
|
||||||
cmp r4, 0x8
|
cmp r4, 0x8
|
||||||
beq _0810B16C
|
beq _0810B16C
|
||||||
ldr r2, _0810B15C @ =sub_815ABFC
|
ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
b _0810B170
|
b _0810B170
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0810B15C: .4byte sub_815ABFC
|
_0810B15C: .4byte CB2_ReturnToTeachyTV
|
||||||
_0810B160:
|
_0810B160:
|
||||||
ldr r2, _0810B168 @ =sub_8030AEC
|
ldr r2, _0810B168 @ =sub_8030AEC
|
||||||
movs r0, 0x7
|
movs r0, 0x7
|
||||||
@@ -6386,7 +6386,7 @@ _0810B19C:
|
|||||||
bl sub_815AC20
|
bl sub_815AC20
|
||||||
ldr r0, _0810B1C4 @ =gUnknown_203AD10
|
ldr r0, _0810B1C4 @ =gUnknown_203AD10
|
||||||
ldr r1, [r0]
|
ldr r1, [r0]
|
||||||
ldr r0, _0810B1C8 @ =sub_815ABFC
|
ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
ldr r1, _0810B1CC @ =gTasks
|
ldr r1, _0810B1CC @ =gTasks
|
||||||
lsls r0, r4, 2
|
lsls r0, r4, 2
|
||||||
@@ -6402,7 +6402,7 @@ _0810B1BC:
|
|||||||
bx r1
|
bx r1
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0810B1C4: .4byte gUnknown_203AD10
|
_0810B1C4: .4byte gUnknown_203AD10
|
||||||
_0810B1C8: .4byte sub_815ABFC
|
_0810B1C8: .4byte CB2_ReturnToTeachyTV
|
||||||
_0810B1CC: .4byte gTasks
|
_0810B1CC: .4byte gTasks
|
||||||
_0810B1D0: .4byte sub_810B070
|
_0810B1D0: .4byte sub_810B070
|
||||||
thumb_func_end sub_810B180
|
thumb_func_end sub_810B180
|
||||||
|
|||||||
+2
-2
@@ -4879,12 +4879,12 @@ sub_8120FB0: @ 8120FB0
|
|||||||
bl FreeRestoreBattleData
|
bl FreeRestoreBattleData
|
||||||
bl LoadPlayerParty
|
bl LoadPlayerParty
|
||||||
bl sub_815AC20
|
bl sub_815AC20
|
||||||
ldr r0, _08120FC8 @ =sub_815ABFC
|
ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV
|
||||||
bl SetMainCallback2
|
bl SetMainCallback2
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08120FC8: .4byte sub_815ABFC
|
_08120FC8: .4byte CB2_ReturnToTeachyTV
|
||||||
thumb_func_end sub_8120FB0
|
thumb_func_end sub_8120FB0
|
||||||
|
|
||||||
thumb_func_start sub_8120FCC
|
thumb_func_start sub_8120FCC
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
#define GUARD_TEACHY_TV_H
|
#define GUARD_TEACHY_TV_H
|
||||||
|
|
||||||
void sub_815ABC4(u8 mode, void (*cb)());
|
void sub_815ABC4(u8 mode, void (*cb)());
|
||||||
void sub_815ABFC(void);
|
void CB2_ReturnToTeachyTV(void);
|
||||||
void sub_815AC20(void);
|
void sub_815AC20(void);
|
||||||
|
|
||||||
#endif //GUARD_TEACHY_TV_H
|
#endif //GUARD_TEACHY_TV_H
|
||||||
|
|||||||
+90
-115
@@ -53,15 +53,15 @@ struct TeachyTvBuf
|
|||||||
u8 var_4007;
|
u8 var_4007;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct TeachyTvCtrlBlk gTeachyTV_StaticResources;
|
EWRAM_DATA struct TeachyTvCtrlBlk gTeachyTV_StaticResources = {0};
|
||||||
extern struct TeachyTvBuf * gUnknown_203F450;
|
extern struct TeachyTvBuf * gUnknown_203F450;
|
||||||
extern const struct ScrollIndicatorArrowPairTemplate gUnknown_8479380;
|
extern const struct ScrollIndicatorArrowPairTemplate gUnknown_8479380;
|
||||||
extern const char gUnknown_841B83D;
|
extern const u8 gUnknown_841B83D;
|
||||||
extern const struct BgTemplate gUnknown_84792E0;
|
extern const struct BgTemplate gUnknown_84792E0;
|
||||||
extern const struct SpritePalette gUnknown_83A5348;
|
extern const struct SpritePalette gUnknown_83A5348;
|
||||||
extern void (**gUnknown_8479548)(u8);
|
extern void (**gUnknown_8479548)(u8);
|
||||||
extern const char * const gUnknown_8479560;
|
extern const u8 * const gUnknown_8479560;
|
||||||
extern const char * const gUnknown_8479578;
|
extern const u8 * const gUnknown_8479578;
|
||||||
extern const u8 gUnknown_8E86240;
|
extern const u8 gUnknown_8E86240;
|
||||||
extern const u8 gUnknown_8E86BE8;
|
extern const u8 gUnknown_8E86BE8;
|
||||||
extern const u8 gUnknown_8E86D6C;
|
extern const u8 gUnknown_8E86D6C;
|
||||||
@@ -76,12 +76,9 @@ extern const struct SpriteTemplate * const gUnknown_83A0010;
|
|||||||
extern const u8 gUnknown_84795C8;
|
extern const u8 gUnknown_84795C8;
|
||||||
extern const struct MapData Route1_Layout;
|
extern const struct MapData Route1_Layout;
|
||||||
|
|
||||||
extern void VblankHblankHandlerSetZero(void);
|
|
||||||
extern void sub_812B1E0(u16);
|
extern void sub_812B1E0(u16);
|
||||||
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
|
||||||
extern void sub_8055DC4(void);
|
extern void sub_8055DC4(void);
|
||||||
extern bool16 sub_80BF518(u8 textPrinterId);
|
extern bool16 sub_80BF518(u8 textPrinterId);
|
||||||
extern void _call_via_r1(s32 arg, void *func);
|
|
||||||
extern void sub_810B108(u8);
|
extern void sub_810B108(u8);
|
||||||
extern void sub_8159F40(void);
|
extern void sub_8159F40(void);
|
||||||
|
|
||||||
@@ -152,7 +149,7 @@ void sub_815ABC4(u8 mode, void (*cb)())
|
|||||||
SetMainCallback2(TeachyTvMainCallback);
|
SetMainCallback2(TeachyTvMainCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_815ABFC(void)
|
void CB2_ReturnToTeachyTV(void)
|
||||||
{
|
{
|
||||||
if (gTeachyTV_StaticResources.mode == 1)
|
if (gTeachyTV_StaticResources.mode == 1)
|
||||||
sub_815ABC4(1, gTeachyTV_StaticResources.callback);
|
sub_815ABC4(1, gTeachyTV_StaticResources.callback);
|
||||||
@@ -189,11 +186,11 @@ void TeachyTvMainCallback(void)
|
|||||||
++gMain.state;
|
++gMain.state;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if ( free_temp_tile_data_buffers_if_possible() == TRUE )
|
if (free_temp_tile_data_buffers_if_possible() == TRUE)
|
||||||
return;
|
return;
|
||||||
TeachyTvCreateAndRenderRbox();
|
TeachyTvCreateAndRenderRbox();
|
||||||
TeachyTvInitIo();
|
TeachyTvInitIo();
|
||||||
if ( gTeachyTV_StaticResources.mode == 2 )
|
if (gTeachyTV_StaticResources.mode == 2)
|
||||||
{
|
{
|
||||||
taskId = CreateTask(TeachyTvPostBattleFadeControl, 0);
|
taskId = CreateTask(TeachyTvPostBattleFadeControl, 0);
|
||||||
gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
|
gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
|
||||||
@@ -302,7 +299,7 @@ void TeachyTvSetupScrollIndicatorArrowPair(void)
|
|||||||
|
|
||||||
void TeachyTvRemoveScrollIndicatorArrowPair(void)
|
void TeachyTvRemoveScrollIndicatorArrowPair(void)
|
||||||
{
|
{
|
||||||
if ( gUnknown_203F450->var_4007 != 0xFF )
|
if (gUnknown_203F450->var_4007 != 0xFF)
|
||||||
{
|
{
|
||||||
RemoveScrollIndicatorArrowPair(gUnknown_203F450->var_4007);
|
RemoveScrollIndicatorArrowPair(gUnknown_203F450->var_4007);
|
||||||
gUnknown_203F450->var_4007 = 0xFF;
|
gUnknown_203F450->var_4007 = 0xFF;
|
||||||
@@ -311,7 +308,7 @@ void TeachyTvRemoveScrollIndicatorArrowPair(void)
|
|||||||
|
|
||||||
void TeachyTvAudioByInput(s32 notUsed, bool8 play, struct ListMenu *notUsedAlt)
|
void TeachyTvAudioByInput(s32 notUsed, bool8 play, struct ListMenu *notUsedAlt)
|
||||||
{
|
{
|
||||||
if ( play != TRUE )
|
if (play != TRUE)
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -353,26 +350,16 @@ void TeachyTvClearWindowRegs(void)
|
|||||||
|
|
||||||
void TeachyTvBg2AnimController(void)
|
void TeachyTvBg2AnimController(void)
|
||||||
{
|
{
|
||||||
u16 *tilemapBuffer;
|
u16 * tilemapBuffer = GetBgTilemapBuffer(2);
|
||||||
u8 i, offset2;
|
u8 i;
|
||||||
u32 j, offset;
|
u8 j;
|
||||||
|
for (i = 1; i < 13; i++)
|
||||||
tilemapBuffer = GetBgTilemapBuffer(2);
|
|
||||||
i = 1;
|
|
||||||
do
|
|
||||||
{
|
{
|
||||||
offset2 = 2;
|
for (j = 2; j < 28; j++)
|
||||||
offset = 0x20 * i;
|
|
||||||
j = i + 1;
|
|
||||||
do
|
|
||||||
{
|
{
|
||||||
tilemapBuffer[offset + offset2] = ((Random() & 3) << 10) + 0x301F;
|
tilemapBuffer[32 * i + j] = ((Random() & 3) << 10) + 0x301F;
|
||||||
offset2 = (offset2 + 1);
|
|
||||||
}
|
}
|
||||||
while ( offset2 <= 0x1B );
|
|
||||||
i = j;
|
|
||||||
}
|
}
|
||||||
while ( (u8)j <= 0xC );
|
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -386,9 +373,9 @@ void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
|
|||||||
ClearWindowTilemap(1);
|
ClearWindowTilemap(1);
|
||||||
TeachyTvClearWindowRegs();
|
TeachyTvClearWindowRegs();
|
||||||
op = gTeachyTV_StaticResources.optionChosen;
|
op = gTeachyTV_StaticResources.optionChosen;
|
||||||
if ( op >= 0 )
|
if (op >= 0)
|
||||||
{
|
{
|
||||||
if ( op <= 3 )
|
if (op <= 3)
|
||||||
{
|
{
|
||||||
TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)data)[2], 0x78, 0x38, 0);
|
TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)data)[2], 0x78, 0x38, 0);
|
||||||
ChangeBgX(3, 0x3000, 1);
|
ChangeBgX(3, 0x3000, 1);
|
||||||
@@ -396,7 +383,7 @@ void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
|
|||||||
gUnknown_203F450->var_4004 += 3;
|
gUnknown_203F450->var_4004 += 3;
|
||||||
gUnknown_203F450->var_4005 -= 3;
|
gUnknown_203F450->var_4005 -= 3;
|
||||||
}
|
}
|
||||||
else if ( op <= 5 )
|
else if (op <= 5)
|
||||||
TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)data)[2], 0x78, 0x38, 0);
|
TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)data)[2], 0x78, 0x38, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,9 +415,9 @@ void TeachyTvQuitBeginFade(u8 taskId)
|
|||||||
|
|
||||||
void TeachyTvQuitFadeControlAndTaskDel(u8 taskId)
|
void TeachyTvQuitFadeControlAndTaskDel(u8 taskId)
|
||||||
{
|
{
|
||||||
if ( !(gPaletteFade.active) )
|
if (!(gPaletteFade.active))
|
||||||
{
|
{
|
||||||
if ( gUnknown_203F450->state )
|
if (gUnknown_203F450->state)
|
||||||
{
|
{
|
||||||
SetMainCallback2(*(void (**)())gUnknown_203F450);
|
SetMainCallback2(*(void (**)())gUnknown_203F450);
|
||||||
}
|
}
|
||||||
@@ -490,7 +477,7 @@ void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId)
|
|||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
TeachyTvBg2AnimController();
|
TeachyTvBg2AnimController();
|
||||||
if ( ++data[2] > 63 )
|
if (++data[2] > 63)
|
||||||
{
|
{
|
||||||
CopyToBgTilemapBufferRect_ChangePalette(2, gUnknown_203F450->buffer4, 0, 0, 0x20, 0x20, 0x11);
|
CopyToBgTilemapBufferRect_ChangePalette(2, gUnknown_203F450->buffer4, 0, 0, 0x20, 0x20, 0x11);
|
||||||
TeachyTvSetSpriteCoordsAndSwitchFrame(((u8*)data)[2], 8, 0x38, 7);
|
TeachyTvSetSpriteCoordsAndSwitchFrame(((u8*)data)[2], 8, 0x38, 7);
|
||||||
@@ -504,7 +491,7 @@ void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId)
|
|||||||
void TeachyTvClusFuncClearBg2TeachyTvGraphic(u8 taskId)
|
void TeachyTvClusFuncClearBg2TeachyTvGraphic(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
if ( ++data[2] == 134 )
|
if (++data[2] == 134)
|
||||||
{
|
{
|
||||||
FillBgTilemapBufferRect_Palette0(2, 0, 2, 1, 0x1A, 0xC);
|
FillBgTilemapBufferRect_Palette0(2, 0, 2, 1, 0x1A, 0xC);
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
@@ -520,10 +507,10 @@ void TeachyTvClusFuncNpcMoveAndSetupTextPrinter(u8 taskId)
|
|||||||
|
|
||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
spriteAddr = &gSprites[data[1]];
|
spriteAddr = &gSprites[data[1]];
|
||||||
if ( data[2] != 35 )
|
if (data[2] != 35)
|
||||||
++data[2];
|
++data[2];
|
||||||
else {
|
else {
|
||||||
if ( spriteAddr->pos2.x == 0x78 )
|
if (spriteAddr->pos2.x == 0x78)
|
||||||
{
|
{
|
||||||
StartSpriteAnim(&gSprites[data[1]], 0);
|
StartSpriteAnim(&gSprites[data[1]], 0);
|
||||||
TeachyTvInitTextPrinter(&gUnknown_841B83D);
|
TeachyTvInitTextPrinter(&gUnknown_841B83D);
|
||||||
@@ -538,7 +525,7 @@ void TeachyTvClusFuncNpcMoveAndSetupTextPrinter(u8 taskId)
|
|||||||
void TeachyTvClusFuncIdleIfTextPrinterIsActive(u8 taskId)
|
void TeachyTvClusFuncIdleIfTextPrinterIsActive(u8 taskId)
|
||||||
{
|
{
|
||||||
s16* data = (u16 *)gTasks[taskId].data;
|
s16* data = (u16 *)gTasks[taskId].data;
|
||||||
if ( !sub_80BF518(0) )
|
if (!sub_80BF518(0))
|
||||||
++data[3];
|
++data[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -546,7 +533,7 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
|
|||||||
{
|
{
|
||||||
s16 *data;
|
s16 *data;
|
||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
if ( gMain.newKeys & 2 )
|
if (JOY_NEW(B_BUTTON))
|
||||||
{
|
{
|
||||||
u8 *offset = &(gUnknown_203F450->var_4006);
|
u8 *offset = &(gUnknown_203F450->var_4006);
|
||||||
u32 zero = 0;
|
u32 zero = 0;
|
||||||
@@ -570,15 +557,15 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
|
|||||||
void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId)
|
void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = (u16 *)gTasks[taskId].data;
|
s16 *data = (u16 *)gTasks[taskId].data;
|
||||||
const char * const* texts = &gUnknown_8479560;
|
const u8 * const* texts = &gUnknown_8479560;
|
||||||
TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]);
|
TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]);
|
||||||
++data[3];
|
++data[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId)
|
void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = (u16 *)gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
const char * const* texts = &gUnknown_8479578;
|
const u8 * const* texts = &gUnknown_8479578;
|
||||||
TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]);
|
TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]);
|
||||||
++data[3];
|
++data[3];
|
||||||
}
|
}
|
||||||
@@ -586,7 +573,7 @@ void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId)
|
|||||||
void TeachyTvClusFuncIdleIfTextPrinterIsActive2(u8 taskId)
|
void TeachyTvClusFuncIdleIfTextPrinterIsActive2(u8 taskId)
|
||||||
{
|
{
|
||||||
s16* data = (u16 *)gTasks[taskId].data;
|
s16* data = (u16 *)gTasks[taskId].data;
|
||||||
if ( !sub_80BF518(0) )
|
if (!sub_80BF518(0))
|
||||||
++data[3];
|
++data[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -604,8 +591,7 @@ void TeachyTvClusFuncEraseTextWindowIfKeyPressed(u8 taskId)
|
|||||||
|
|
||||||
void TeachyTvClusFuncStartAnimNpcWalkIntoGrass(u8 taskId)
|
void TeachyTvClusFuncStartAnimNpcWalkIntoGrass(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data;
|
s16 *data = gTasks[taskId].data;
|
||||||
data = (u16 *)gTasks[taskId].data;
|
|
||||||
StartSpriteAnim(&gSprites[(s16)data[1]], 5);
|
StartSpriteAnim(&gSprites[(s16)data[1]], 5);
|
||||||
data[2] = 0;
|
data[2] = 0;
|
||||||
data[4] = 0;
|
data[4] = 0;
|
||||||
@@ -621,12 +607,12 @@ void TeachyTvClusFuncDudeMoveUp(u8 taskId)
|
|||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
obj = &gSprites[data[1]];
|
obj = &gSprites[data[1]];
|
||||||
ChangeBgY(3, 0x100, 2);
|
ChangeBgY(3, 0x100, 2);
|
||||||
if ( !( ++data[2] & 0xF ) )
|
if (!(++data[2] & 0xF))
|
||||||
{
|
{
|
||||||
--gUnknown_203F450->var_4005;
|
--gUnknown_203F450->var_4005;
|
||||||
TeachyTvGrassAnimationMain(taskId, obj->pos2.x, obj->pos2.y, 0, 0);
|
TeachyTvGrassAnimationMain(taskId, obj->pos2.x, obj->pos2.y, 0, 0);
|
||||||
}
|
}
|
||||||
if ( data[2] == 48 )
|
if (data[2] == 48)
|
||||||
{
|
{
|
||||||
data[2] = 0;
|
data[2] = 0;
|
||||||
data[4] = -1;
|
data[4] = -1;
|
||||||
@@ -641,14 +627,14 @@ void TeachyTvClusFuncDudeMoveRight(u8 taskId)
|
|||||||
s16 *data;
|
s16 *data;
|
||||||
struct Sprite *obj;
|
struct Sprite *obj;
|
||||||
|
|
||||||
data = (u16 *)gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
obj = &gSprites[(s16)data[1]];
|
obj = &gSprites[data[1]];
|
||||||
ChangeBgX(3, 0x100, 1);
|
ChangeBgX(3, 0x100, 1);
|
||||||
if ( !(++data[2] & 0xF) )
|
if (!(++data[2] & 0xF))
|
||||||
++gUnknown_203F450->var_4004;
|
++gUnknown_203F450->var_4004;
|
||||||
if ( !((data[2] + 8) & 0xF) )
|
if (!((data[2] + 8) & 0xF))
|
||||||
TeachyTvGrassAnimationMain(taskId, obj->pos2.x + 8, obj->pos2.y, 0, 0);
|
TeachyTvGrassAnimationMain(taskId, obj->pos2.x + 8, obj->pos2.y, 0, 0);
|
||||||
if ( data[2] == 0x30 )
|
if (data[2] == 0x30)
|
||||||
{
|
{
|
||||||
data[2] = 0;
|
data[2] = 0;
|
||||||
data[4] = 0;
|
data[4] = 0;
|
||||||
@@ -660,10 +646,8 @@ void TeachyTvClusFuncDudeMoveRight(u8 taskId)
|
|||||||
|
|
||||||
void TeachyTvClusFuncDudeTurnLeft(u8 taskId)
|
void TeachyTvClusFuncDudeTurnLeft(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data;
|
|
||||||
struct Sprite *v3;
|
struct Sprite *v3;
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
data = gTasks[taskId].data;
|
|
||||||
v3 = &gSprites[data[1]];
|
v3 = &gSprites[data[1]];
|
||||||
StartSpriteAnim(v3, 6);
|
StartSpriteAnim(v3, 6);
|
||||||
++data[3];
|
++data[3];
|
||||||
@@ -680,9 +664,9 @@ void TeachyTvClusFuncDudeMoveLeft(u8 taskId)
|
|||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
v2 = &gSprites[data[1]];
|
v2 = &gSprites[data[1]];
|
||||||
|
|
||||||
if ( !(v2->pos2.x & 0xF) )
|
if (!(v2->pos2.x & 0xF))
|
||||||
TeachyTvGrassAnimationMain(taskId, v2->pos2.x - 8, v2->pos2.y, 0, 0);
|
TeachyTvGrassAnimationMain(taskId, v2->pos2.x - 8, v2->pos2.y, 0, 0);
|
||||||
if ( v2->pos2.x == 8 )
|
if (v2->pos2.x == 8)
|
||||||
++data[3];
|
++data[3];
|
||||||
else
|
else
|
||||||
--v2->pos2.x;
|
--v2->pos2.x;
|
||||||
@@ -693,12 +677,12 @@ void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId)
|
|||||||
s16 *data;
|
s16 *data;
|
||||||
|
|
||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
if ( !data[2] )
|
if (!data[2])
|
||||||
{
|
{
|
||||||
CopyToBgTilemapBufferRect_ChangePalette(1, &gUnknown_8479590, 0x14, 0xA, 8, 2, 0x11);
|
CopyToBgTilemapBufferRect_ChangePalette(1, &gUnknown_8479590, 0x14, 0xA, 8, 2, 0x11);
|
||||||
schedule_bg_copy_tilemap_to_vram(1);
|
schedule_bg_copy_tilemap_to_vram(1);
|
||||||
}
|
}
|
||||||
if ( ++data[2] > 126 )
|
if (++data[2] > 126)
|
||||||
{
|
{
|
||||||
TeachyTvClearBg1EndGraphicText();
|
TeachyTvClearBg1EndGraphicText();
|
||||||
data[2] = 0;
|
data[2] = 0;
|
||||||
@@ -717,14 +701,14 @@ void TeachyTvBackToOptionList(u8 taskId)
|
|||||||
s16 *data;
|
s16 *data;
|
||||||
|
|
||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
if ( !data[2] )
|
if (data[2] == 0)
|
||||||
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
|
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
|
||||||
TeachyTvBg2AnimController();
|
TeachyTvBg2AnimController();
|
||||||
if ( ++data[2] > 63 )
|
if (++data[2] > 63)
|
||||||
{
|
{
|
||||||
data[2] = 0;
|
data[2] = 0;
|
||||||
data[3] = 0;
|
data[3] = 0;
|
||||||
*data = TeachyTvSetupWindow();
|
data[0] = TeachyTvSetupWindow();
|
||||||
gTasks[taskId].func = TeachyTvOptionListController;
|
gTasks[taskId].func = TeachyTvOptionListController;
|
||||||
PutWindowTilemap(0);
|
PutWindowTilemap(0);
|
||||||
TeachyTvSetupScrollIndicatorArrowPair();
|
TeachyTvSetupScrollIndicatorArrowPair();
|
||||||
@@ -743,14 +727,14 @@ void TeachyTvBackToOptionList(u8 taskId)
|
|||||||
void TeachyTvChainTaskBattleOrFadeByOptionChosen(u8 taskId)
|
void TeachyTvChainTaskBattleOrFadeByOptionChosen(u8 taskId)
|
||||||
{
|
{
|
||||||
int op = gTeachyTV_StaticResources.optionChosen;
|
int op = gTeachyTV_StaticResources.optionChosen;
|
||||||
if ( op >= 0 )
|
if (op >= 0)
|
||||||
{
|
{
|
||||||
if ( op <= 3 )
|
if (op <= 3)
|
||||||
{
|
{
|
||||||
TeachyTvPrepBattle(taskId);
|
TeachyTvPrepBattle(taskId);
|
||||||
|
|
||||||
}
|
}
|
||||||
else if ( op <= 5 )
|
else if (op <= 5)
|
||||||
{
|
{
|
||||||
*((void(**)())gUnknown_203F450) = TeachyTvSetupBagItemsByOptionChosen;
|
*((void(**)())gUnknown_203F450) = TeachyTvSetupBagItemsByOptionChosen;
|
||||||
TeachyTvQuitBeginFade(taskId);
|
TeachyTvQuitBeginFade(taskId);
|
||||||
@@ -760,7 +744,7 @@ void TeachyTvChainTaskBattleOrFadeByOptionChosen(u8 taskId)
|
|||||||
|
|
||||||
void TeachyTvSetupBagItemsByOptionChosen(void)
|
void TeachyTvSetupBagItemsByOptionChosen(void)
|
||||||
{
|
{
|
||||||
if ( gTeachyTV_StaticResources.optionChosen == 4 )
|
if (gTeachyTV_StaticResources.optionChosen == 4)
|
||||||
sub_810B108(10);
|
sub_810B108(10);
|
||||||
else
|
else
|
||||||
sub_810B108(9);
|
sub_810B108(9);
|
||||||
@@ -769,7 +753,7 @@ void TeachyTvSetupBagItemsByOptionChosen(void)
|
|||||||
void TeachyTvPostBattleFadeControl(u8 taskId)
|
void TeachyTvPostBattleFadeControl(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
if ( !(gPaletteFade.active) )
|
if (!(gPaletteFade.active))
|
||||||
{
|
{
|
||||||
const u8* funcIdx = &gUnknown_8479390;
|
const u8* funcIdx = &gUnknown_8479390;
|
||||||
int arg = funcIdx[gTeachyTV_StaticResources.optionChosen];
|
int arg = funcIdx[gTeachyTV_StaticResources.optionChosen];
|
||||||
@@ -787,12 +771,12 @@ void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 m
|
|||||||
const struct SpriteTemplate *const *objTemAddr;
|
const struct SpriteTemplate *const *objTemAddr;
|
||||||
|
|
||||||
subprio = subpriority;
|
subprio = subpriority;
|
||||||
if ( gUnknown_203F450->var_4006 != 1 )
|
if (gUnknown_203F450->var_4006 != 1)
|
||||||
{
|
{
|
||||||
res = TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(
|
res = TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(
|
||||||
x - 0x10,
|
x - 0x10,
|
||||||
y);
|
y);
|
||||||
if ( res << 24 )
|
if (res << 24)
|
||||||
{
|
{
|
||||||
objTemAddr = &gUnknown_83A0010;
|
objTemAddr = &gUnknown_83A0010;
|
||||||
objId = CreateSprite(*(objTemAddr+4), 0, 0, subprio);
|
objId = CreateSprite(*(objTemAddr+4), 0, 0, subprio);
|
||||||
@@ -801,7 +785,7 @@ void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 m
|
|||||||
obj->pos2.y = y + 8;
|
obj->pos2.y = y + 8;
|
||||||
obj->callback = TeachyTvGrassAnimationObjCallback;
|
obj->callback = TeachyTvGrassAnimationObjCallback;
|
||||||
obj->data[0] = taskId;
|
obj->data[0] = taskId;
|
||||||
if ( mode == 1 )
|
if (mode == 1)
|
||||||
{
|
{
|
||||||
SeekSpriteAnim(obj, 4);
|
SeekSpriteAnim(obj, 4);
|
||||||
obj->oam.priority = 2;
|
obj->oam.priority = 2;
|
||||||
@@ -853,12 +837,11 @@ u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y)
|
|||||||
const u8 * arr;
|
const u8 * arr;
|
||||||
struct TeachyTvBuf *ptr;
|
struct TeachyTvBuf *ptr;
|
||||||
int high, low;
|
int high, low;
|
||||||
if ( (x < 0) || (y < 0) )
|
if ((x < 0) || (y < 0))
|
||||||
return 0;
|
return 0;
|
||||||
arr = &gUnknown_84795C8;
|
arr = &gUnknown_84795C8;
|
||||||
ptr = gUnknown_203F450;
|
high = ((y >> 4) + gUnknown_203F450->var_4005) << 4;
|
||||||
high = ((y >> 4) + ptr->var_4005) << 4;
|
low = ((x >> 4) + gUnknown_203F450->var_4004);
|
||||||
low = ((x >> 4) + ptr->var_4004);
|
|
||||||
return arr[high+low];
|
return arr[high+low];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -874,7 +857,7 @@ void TeachyTvPrepBattle(u8 taskId)
|
|||||||
SavePlayerParty();
|
SavePlayerParty();
|
||||||
sub_8159F40();
|
sub_8159F40();
|
||||||
PlayMapChosenOrBattleBGM(MUS_DUMMY);
|
PlayMapChosenOrBattleBGM(MUS_DUMMY);
|
||||||
if ( !gTeachyTV_StaticResources.optionChosen )
|
if (!gTeachyTV_StaticResources.optionChosen)
|
||||||
data[6] = 9;
|
data[6] = 9;
|
||||||
else
|
else
|
||||||
data[6] = 8;
|
data[6] = 8;
|
||||||
@@ -884,19 +867,15 @@ void TeachyTvPrepBattle(u8 taskId)
|
|||||||
|
|
||||||
void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
|
void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data;
|
s16 *data = gTasks[taskId].data;
|
||||||
int temp;
|
|
||||||
|
|
||||||
data = gTasks[taskId].data;
|
|
||||||
switch (data[7])
|
switch (data[7])
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
sub_80D08B8(*((u8*)data + 12));
|
sub_80D08B8(data[6]);
|
||||||
++data[7];
|
++data[7];
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
temp = sub_80D08F8();
|
if (sub_80D08F8() << 24)
|
||||||
if ( temp << 24 )
|
|
||||||
{
|
{
|
||||||
SetMainCallback2(sub_800FD9C);
|
SetMainCallback2(sub_800FD9C);
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
@@ -908,11 +887,11 @@ void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
|
|||||||
void TeachyTvRestorePlayerPartyCallback(void)
|
void TeachyTvRestorePlayerPartyCallback(void)
|
||||||
{
|
{
|
||||||
LoadPlayerParty();
|
LoadPlayerParty();
|
||||||
if ( gUnknown_2023E8A == 3 )
|
if (gUnknown_2023E8A == 3)
|
||||||
sub_815AC20();
|
sub_815AC20();
|
||||||
else
|
else
|
||||||
PlayNewMapMusic(BGM_FRLG_FOLLOW_ME);
|
PlayNewMapMusic(BGM_FRLG_FOLLOW_ME);
|
||||||
sub_815ABFC();
|
CB2_ReturnToTeachyTV();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
@@ -961,20 +940,20 @@ void TeachyTvLoadBg3Map(void *buffer)
|
|||||||
mapEntry = md->map[v3 + 24 * v19 + 8] & 0x3FF;
|
mapEntry = md->map[v3 + 24 * v19 + 8] & 0x3FF;
|
||||||
v7 = 0;
|
v7 = 0;
|
||||||
v8 = v3 + 1;
|
v8 = v3 + 1;
|
||||||
if ( v4 + v3 <= 0 )
|
if (v4 + v3 <= 0)
|
||||||
{
|
{
|
||||||
LABEL_9:
|
LABEL_9:
|
||||||
if ( mapArray[v7] )
|
if (mapArray[v7])
|
||||||
goto LABEL_11;
|
goto LABEL_11;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for ( i = *mapArray; i; i = mapArray[v7] )
|
for (i = *mapArray; i; i = mapArray[v7])
|
||||||
{
|
{
|
||||||
if ( i == mapEntry )
|
if (i == mapEntry)
|
||||||
goto LABEL_9;
|
goto LABEL_9;
|
||||||
v7 = (u16)(v7 + 1);
|
v7 = (u16)(v7 + 1);
|
||||||
if ( v7 >= v4 + v3 )
|
if (v7 >= v4 + v3)
|
||||||
goto LABEL_9;
|
goto LABEL_9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -989,17 +968,17 @@ LABEL_11:
|
|||||||
v7);
|
v7);
|
||||||
v3 = v8;
|
v3 = v8;
|
||||||
}
|
}
|
||||||
while ( (u16)v8 <= 0xF );
|
while ((u16)v8 <= 0xF);
|
||||||
v2 = v18;
|
v2 = v18;
|
||||||
}
|
}
|
||||||
while ( (u16)v18 <= 8 );
|
while ((u16)v18 <= 8);
|
||||||
MapTileBlockBuf = (char *)Alloc(v17 << 7);
|
MapTileBlockBuf = (char *)Alloc(v17 << 7);
|
||||||
FourMapTileBlocksTempBuf = Alloc(0x80);
|
FourMapTileBlocksTempBuf = Alloc(0x80);
|
||||||
for ( j = 0; j < v17; j = (u16)j + 1 )
|
for (j = 0; j < v17; j = (u16)j + 1)
|
||||||
{
|
{
|
||||||
memset(FourMapTileBlocksTempBuf, 0, 0x80);
|
memset(FourMapTileBlocksTempBuf, 0, 0x80);
|
||||||
v13 = &mapArray[j];
|
v13 = &mapArray[j];
|
||||||
if ( *v13 <= 0x27F )
|
if (*v13 <= 0x27F)
|
||||||
TeachyTvComputeMapTilesFromTilesetAndMetaTiles(
|
TeachyTvComputeMapTilesFromTilesetAndMetaTiles(
|
||||||
(u16 *)(16 * *v13 + (u16*)(md->primaryTileset->metatiles)),
|
(u16 *)(16 * *v13 + (u16*)(md->primaryTileset->metatiles)),
|
||||||
(u8 *)FourMapTileBlocksTempBuf,
|
(u8 *)FourMapTileBlocksTempBuf,
|
||||||
@@ -1249,9 +1228,9 @@ void TeachyTvLoadBg3Map(void *buffer)
|
|||||||
|
|
||||||
void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size)
|
void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size)
|
||||||
{
|
{
|
||||||
if ( ts )
|
if (ts)
|
||||||
{
|
{
|
||||||
if ( !ts->isCompressed )
|
if (!ts->isCompressed)
|
||||||
CpuFastSet(ts->tiles, dstBuffer, 8 * size);
|
CpuFastSet(ts->tiles, dstBuffer, 8 * size);
|
||||||
else
|
else
|
||||||
LZDecompressWram(ts->tiles, dstBuffer);
|
LZDecompressWram(ts->tiles, dstBuffer);
|
||||||
@@ -1265,7 +1244,7 @@ void TeachyTvPushBackNewMapPalIndexArrayEntry(struct MapData *mStruct, u16 *buf1
|
|||||||
u16 *metaTileEntryAddr;
|
u16 *metaTileEntryAddr;
|
||||||
|
|
||||||
int temp = mapEntry;
|
int temp = mapEntry;
|
||||||
if ( temp <= 0x27F )
|
if (temp <= 0x27F)
|
||||||
{
|
{
|
||||||
ts = mStruct->primaryTileset;
|
ts = mStruct->primaryTileset;
|
||||||
}
|
}
|
||||||
@@ -1374,13 +1353,11 @@ void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *
|
|||||||
buffer = (u8 *)AllocZeroed(0x20);
|
buffer = (u8 *)AllocZeroed(0x20);
|
||||||
src = ((u32)AllocZeroed(0x20));
|
src = ((u32)AllocZeroed(0x20));
|
||||||
CpuFastSet(tileset, buffer, 8);
|
CpuFastSet(tileset, buffer, 8);
|
||||||
if ( metaTile & 1 )
|
if (metaTile & 1)
|
||||||
{
|
{
|
||||||
i = 0;
|
for (i=0; i<8; ++i)
|
||||||
do
|
|
||||||
{
|
{
|
||||||
j = 0;
|
for (j=0; j<4; ++j)
|
||||||
do
|
|
||||||
{
|
{
|
||||||
u32 offset1 = i << 2;
|
u32 offset1 = i << 2;
|
||||||
u32 offset2 = j - 3;
|
u32 offset2 = j - 3;
|
||||||
@@ -1389,12 +1366,10 @@ void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *
|
|||||||
u32 dstOffset = offset1 + j;
|
u32 dstOffset = offset1 + j;
|
||||||
*(u8*)(src + dstOffset) = ((value & 0xF) << 4) + ((value & 0xF0) >> 4);
|
*(u8*)(src + dstOffset) = ((value & 0xF) << 4) + ((value & 0xF0) >> 4);
|
||||||
}
|
}
|
||||||
while ( ++(u8)j <= 3 );
|
|
||||||
}
|
}
|
||||||
while ( ++(u8)i <= 7 );
|
|
||||||
CpuFastSet((u8*)src, buffer, 8);
|
CpuFastSet((u8*)src, buffer, 8);
|
||||||
}
|
}
|
||||||
if ( metaTile & 2 )
|
if (metaTile & 2)
|
||||||
{
|
{
|
||||||
j = 0;
|
j = 0;
|
||||||
do
|
do
|
||||||
@@ -1402,19 +1377,19 @@ void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *
|
|||||||
memcpy(&((u8*)src)[4 * j], &buffer[4 * (7 - j)], 4);
|
memcpy(&((u8*)src)[4 * j], &buffer[4 * (7 - j)], 4);
|
||||||
j = (u8)(j + 1);
|
j = (u8)(j + 1);
|
||||||
}
|
}
|
||||||
while ( j <= 7 );
|
while (j <= 7);
|
||||||
CpuFastSet((u8*)src, buffer, 8);
|
CpuFastSet((u8*)src, buffer, 8);
|
||||||
}
|
}
|
||||||
j = 0;
|
j = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if ( buffer[j] & 0xF0 )
|
if (buffer[j] & 0xF0)
|
||||||
blockBuf[j] = (blockBuf[j] & 0xF) + (buffer[j] & 0xF0);
|
blockBuf[j] = (blockBuf[j] & 0xF) + (buffer[j] & 0xF0);
|
||||||
if ( buffer[j] & 0xF )
|
if (buffer[j] & 0xF)
|
||||||
blockBuf[j] = (blockBuf[j] & 0xF0) + (buffer[j] & 0xF);
|
blockBuf[j] = (blockBuf[j] & 0xF0) + (buffer[j] & 0xF);
|
||||||
j = (u8)(j + 1);
|
j = (u8)(j + 1);
|
||||||
}
|
}
|
||||||
while ( j <= 0x1F );
|
while (j <= 0x1F);
|
||||||
Free((u8*)src);
|
Free((u8*)src);
|
||||||
Free(buffer);
|
Free(buffer);
|
||||||
}
|
}
|
||||||
@@ -1576,26 +1551,26 @@ u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTi
|
|||||||
int firstEntry;
|
int firstEntry;
|
||||||
int temp;
|
int temp;
|
||||||
|
|
||||||
pal = (u32)(metaTile << 16) >> 28;
|
pal = metaTile >> 12;
|
||||||
i = 0;
|
i = 0;
|
||||||
firstEntry = *palIndexArrayBuf;
|
firstEntry = *palIndexArrayBuf;
|
||||||
if ( firstEntry != pal )
|
if (firstEntry != pal)
|
||||||
{
|
{
|
||||||
if ( firstEntry == 0xFF )
|
if (firstEntry == 0xFF)
|
||||||
{
|
{
|
||||||
*palIndexArrayBuf = pal;
|
*palIndexArrayBuf = pal;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
while ( 1 )
|
while (1)
|
||||||
{
|
{
|
||||||
++i;
|
++i;
|
||||||
if ( i > 0xF )
|
if (i > 0xF)
|
||||||
break;
|
break;
|
||||||
temp = palIndexArrayBuf[i];
|
temp = palIndexArrayBuf[i];
|
||||||
if ( temp == pal )
|
if (temp == pal)
|
||||||
break;
|
break;
|
||||||
if ( temp == 0xFF )
|
if (temp == 0xFF)
|
||||||
{
|
{
|
||||||
palIndexArrayBuf[i] = pal;
|
palIndexArrayBuf[i] = pal;
|
||||||
break;
|
break;
|
||||||
|
|||||||
+1
-1
@@ -1147,7 +1147,7 @@ void PokeDude_InitTMCase(void)
|
|||||||
AddBagItem(ITEM_TM03, 1);
|
AddBagItem(ITEM_TM03, 1);
|
||||||
AddBagItem(ITEM_TM09, 1);
|
AddBagItem(ITEM_TM09, 1);
|
||||||
AddBagItem(ITEM_TM35, 1);
|
AddBagItem(ITEM_TM35, 1);
|
||||||
InitTMCase(4, sub_815ABFC, 0);
|
InitTMCase(4, CB2_ReturnToTeachyTV, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Task_TMCaseDude1(u8 taskId)
|
static void Task_TMCaseDude1(u8 taskId)
|
||||||
|
|||||||
Reference in New Issue
Block a user