now using struct decl
This commit is contained in:
+56
-48
@@ -40,8 +40,21 @@ struct TeachyTvCtrlBlk
|
|||||||
u16 filler;
|
u16 filler;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct TeachyTvBuf
|
||||||
|
{
|
||||||
|
u32 state;
|
||||||
|
u8 buffer1[0x1000];
|
||||||
|
u8 buffer2[0x1000];
|
||||||
|
u8 buffer3[0x1000];
|
||||||
|
u8 buffer4[0x1000];
|
||||||
|
u8 var_4004;
|
||||||
|
u8 var_4005;
|
||||||
|
u8 var_4006;
|
||||||
|
u8 var_4007;
|
||||||
|
};
|
||||||
|
|
||||||
extern struct TeachyTvCtrlBlk gTeachyTV_StaticResources;
|
extern struct TeachyTvCtrlBlk gTeachyTV_StaticResources;
|
||||||
extern void * 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 char gUnknown_841B83D;
|
||||||
extern const struct BgTemplate gUnknown_84792E0;
|
extern const struct BgTemplate gUnknown_84792E0;
|
||||||
@@ -157,18 +170,18 @@ void TeachyTvMainCallback()
|
|||||||
int state;
|
int state;
|
||||||
int taskId;
|
int taskId;
|
||||||
struct Task *taskAddr;
|
struct Task *taskAddr;
|
||||||
u8 **memBuf;
|
struct TeachyTvBuf **memBuf;
|
||||||
u32 x;
|
u32 x;
|
||||||
|
|
||||||
state = gMain.state;
|
state = gMain.state;
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
memBuf = (u8 **)&gUnknown_203F450;
|
memBuf = &gUnknown_203F450;
|
||||||
(*memBuf) = (u8*)AllocZeroed(0x4008);
|
(*memBuf) = (struct TeachyTvBuf *)AllocZeroed(0x4008);
|
||||||
*(u32*)gUnknown_203F450 = (u32)state;
|
gUnknown_203F450->state = (u32)state;
|
||||||
*((u8*)gUnknown_203F450 + 0x4006) = state;
|
gUnknown_203F450->var_4006 = state;
|
||||||
*((u8*)gUnknown_203F450 + 0x4007) = 0xFF;
|
gUnknown_203F450->var_4007 = 0xFF;
|
||||||
VblankHblankHandlerSetZero();
|
VblankHblankHandlerSetZero();
|
||||||
clear_scheduled_bg_copies_to_vram();
|
clear_scheduled_bg_copies_to_vram();
|
||||||
ScanlineEffect_Stop();
|
ScanlineEffect_Stop();
|
||||||
@@ -219,9 +232,9 @@ void TeachyTvSetupBg()
|
|||||||
InitBgReg();
|
InitBgReg();
|
||||||
ResetBgsAndClearDma3BusyFlags(0);
|
ResetBgsAndClearDma3BusyFlags(0);
|
||||||
InitBgsFromTemplates(0, &gUnknown_84792E0, 4);
|
InitBgsFromTemplates(0, &gUnknown_84792E0, 4);
|
||||||
SetBgTilemapBuffer(1, (u8 *)gUnknown_203F450 + 4);
|
SetBgTilemapBuffer(1, gUnknown_203F450->buffer1);
|
||||||
SetBgTilemapBuffer(2, (u8 *)gUnknown_203F450 + 0x1004);
|
SetBgTilemapBuffer(2, gUnknown_203F450->buffer2);
|
||||||
SetBgTilemapBuffer(3, (u8 *)gUnknown_203F450 + 0x2004);
|
SetBgTilemapBuffer(3, gUnknown_203F450->buffer3);
|
||||||
SetGpuReg(REG_OFFSET_DISPCNT, 0x3040);
|
SetGpuReg(REG_OFFSET_DISPCNT, 0x3040);
|
||||||
ShowBg(0);
|
ShowBg(0);
|
||||||
ShowBg(1);
|
ShowBg(1);
|
||||||
@@ -229,8 +242,8 @@ void TeachyTvSetupBg()
|
|||||||
ShowBg(3);
|
ShowBg(3);
|
||||||
ChangeBgX(3, 0x1000, 2);
|
ChangeBgX(3, 0x1000, 2);
|
||||||
ChangeBgY(3, 0x2800, 1);
|
ChangeBgY(3, 0x2800, 1);
|
||||||
*((u8 *)gUnknown_203F450 + 0x4004) = 0;
|
gUnknown_203F450->var_4004 = 0;
|
||||||
*((u8 *)gUnknown_203F450 + 0x4005) = 3;
|
gUnknown_203F450->var_4005 = 3;
|
||||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -240,12 +253,12 @@ void TeachyTvLoadGraphic()
|
|||||||
src = 0;
|
src = 0;
|
||||||
reset_temp_tile_data_buffers();
|
reset_temp_tile_data_buffers();
|
||||||
decompress_and_copy_tile_data_to_vram(1, &gUnknown_8E86240, 0, 0, 0);
|
decompress_and_copy_tile_data_to_vram(1, &gUnknown_8E86240, 0, 0, 0);
|
||||||
LZDecompressWram(&gUnknown_8E86BE8, (*(u8 **)&gUnknown_203F450) + 0x4);
|
LZDecompressWram(&gUnknown_8E86BE8, gUnknown_203F450->buffer1);
|
||||||
LZDecompressWram(&gUnknown_8E86D6C, (*(u8 **)&gUnknown_203F450) + 0x3004);
|
LZDecompressWram(&gUnknown_8E86D6C, gUnknown_203F450->buffer4);
|
||||||
LoadCompressedPalette(&gUnknown_8E86F98, 0, 0x80);
|
LoadCompressedPalette(&gUnknown_8E86F98, 0, 0x80);
|
||||||
LoadPalette(&src, 0, 2);
|
LoadPalette(&src, 0, 2);
|
||||||
LoadSpritePalette(&gUnknown_83A5348);
|
LoadSpritePalette(&gUnknown_83A5348);
|
||||||
TeachyTvLoadBg3Map((u8 *)gUnknown_203F450 + 0x2004);
|
TeachyTvLoadBg3Map(gUnknown_203F450->buffer3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TeachyTvCreateAndRenderRbox()
|
void TeachyTvCreateAndRenderRbox()
|
||||||
@@ -284,27 +297,26 @@ void TeachyTvSetupScrollIndicatorArrowPair()
|
|||||||
hasItem = (u8)CheckBagHasItem(ITEM_TM_CASE, 1);
|
hasItem = (u8)CheckBagHasItem(ITEM_TM_CASE, 1);
|
||||||
if ( ! hasItem << 24 )
|
if ( ! hasItem << 24 )
|
||||||
{
|
{
|
||||||
u8 * temp = (u8 *)gUnknown_203F450;
|
struct TeachyTvBuf * temp = gUnknown_203F450;
|
||||||
*((u8 *)temp + 0x4007) = 0xFF;
|
temp->var_4007 = 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
u8 *temp, res;
|
struct TeachyTvBuf *temp;
|
||||||
res = AddScrollIndicatorArrowPair(
|
u8 res;
|
||||||
&gUnknown_8479380,
|
res = AddScrollIndicatorArrowPair(&gUnknown_8479380, &(gTeachyTV_StaticResources.scrollOffset));
|
||||||
&(gTeachyTV_StaticResources.scrollOffset));
|
temp = gUnknown_203F450;
|
||||||
temp = (u8 *)gUnknown_203F450;
|
temp->var_4007 = res;
|
||||||
*((u8 *)temp + 0x4007) = res;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TeachyTvRemoveScrollIndicatorArrowPair()
|
void TeachyTvRemoveScrollIndicatorArrowPair()
|
||||||
{
|
{
|
||||||
u8 *temp = ((u8*)gUnknown_203F450 + 0x4007);
|
u8 *temp = &(gUnknown_203F450->var_4007);
|
||||||
if ( *temp != 0xFF )
|
if ( *temp != 0xFF )
|
||||||
{
|
{
|
||||||
RemoveScrollIndicatorArrowPair(*temp);
|
RemoveScrollIndicatorArrowPair(*temp);
|
||||||
*((u8*)gUnknown_203F450 + 0x4007) = 0xFF;
|
gUnknown_203F450->var_4007 = 0xFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,8 +404,8 @@ void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
|
|||||||
TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)v2)[2], 0x78, 0x38, 0);
|
TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)v2)[2], 0x78, 0x38, 0);
|
||||||
ChangeBgX(3, 0x3000, 1);
|
ChangeBgX(3, 0x3000, 1);
|
||||||
ChangeBgY(3, 0x3000, 2);
|
ChangeBgY(3, 0x3000, 2);
|
||||||
*((u8 *)gUnknown_203F450 + 0x4004) += 3;
|
gUnknown_203F450->var_4004 += 3;
|
||||||
*((u8 *)gUnknown_203F450 + 0x4005) -= 3;
|
gUnknown_203F450->var_4005 -= 3;
|
||||||
}
|
}
|
||||||
else if ( op <= 5 )
|
else if ( op <= 5 )
|
||||||
TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)v2)[2], 0x78, 0x38, 0);
|
TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)v2)[2], 0x78, 0x38, 0);
|
||||||
@@ -429,7 +441,7 @@ void TeachyTvQuitFadeControlAndTaskDel(u8 taskId)
|
|||||||
{
|
{
|
||||||
if ( !(gPaletteFade.active) )
|
if ( !(gPaletteFade.active) )
|
||||||
{
|
{
|
||||||
if ( *(u32 *)gUnknown_203F450 )
|
if ( gUnknown_203F450->state )
|
||||||
{
|
{
|
||||||
SetMainCallback2(*(void (**)())gUnknown_203F450);
|
SetMainCallback2(*(void (**)())gUnknown_203F450);
|
||||||
}
|
}
|
||||||
@@ -580,7 +592,7 @@ void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId)
|
|||||||
TeachyTvBg2AnimController();
|
TeachyTvBg2AnimController();
|
||||||
if ( ++data[2] > 63 )
|
if ( ++data[2] > 63 )
|
||||||
{
|
{
|
||||||
CopyToBgTilemapBufferRect_ChangePalette(2, (u8 *)gUnknown_203F450 + 0x3004, 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);
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
data[2] = 0;
|
data[2] = 0;
|
||||||
@@ -636,15 +648,15 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
|
|||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
if ( gMain.newKeys & 2 )
|
if ( gMain.newKeys & 2 )
|
||||||
{
|
{
|
||||||
char *offset = ((char *)gUnknown_203F450 + 0x4006);
|
u8 *offset = &(gUnknown_203F450->var_4006);
|
||||||
u32 v4 = 0;
|
u32 zero = 0;
|
||||||
offset[0] = 1;
|
offset[0] = 1;
|
||||||
TeachyTvSetSpriteCoordsAndSwitchFrame(*((char *)data + 2), 0, 0, 0);
|
TeachyTvSetSpriteCoordsAndSwitchFrame(*((char *)data + 2), 0, 0, 0);
|
||||||
FillWindowPixelBuffer(0, 0xCC);
|
FillWindowPixelBuffer(0, 0xCC);
|
||||||
CopyWindowToVram(0, 2);
|
CopyWindowToVram(0, 2);
|
||||||
TeachyTvClearBg1EndGraphicText();
|
TeachyTvClearBg1EndGraphicText();
|
||||||
data[2] = v4;
|
data[2] = zero;
|
||||||
data[3] = v4;
|
data[3] = zero;
|
||||||
gTasks[taskId].func = TeachyTvBackToOptionList;
|
gTasks[taskId].func = TeachyTvBackToOptionList;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -707,17 +719,13 @@ void TeachyTvClusFuncDudeMoveUp(u8 taskId)
|
|||||||
{
|
{
|
||||||
s16 *data;
|
s16 *data;
|
||||||
struct Sprite *obj;
|
struct Sprite *obj;
|
||||||
int temp;
|
|
||||||
int counter;
|
|
||||||
|
|
||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
obj = &gSprites[data[1]];
|
obj = &gSprites[data[1]];
|
||||||
ChangeBgY(3, 0x100, 2);
|
ChangeBgY(3, 0x100, 2);
|
||||||
counter = (u16)data[2] + 1;
|
if ( !( ++data[2] & 0xF ) )
|
||||||
((u16*)data)[2] = counter;
|
|
||||||
if ( !( counter % 16 ) )
|
|
||||||
{
|
{
|
||||||
--((u8*)gUnknown_203F450)[0x4005];
|
--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 )
|
||||||
@@ -739,7 +747,7 @@ void TeachyTvClusFuncDudeMoveRight(u8 taskId)
|
|||||||
obj = &gSprites[(s16)data[1]];
|
obj = &gSprites[(s16)data[1]];
|
||||||
ChangeBgX(3, 0x100, 1);
|
ChangeBgX(3, 0x100, 1);
|
||||||
if ( !(++data[2] & 0xF) )
|
if ( !(++data[2] & 0xF) )
|
||||||
++((u8*)gUnknown_203F450)[0x4004];
|
++gUnknown_203F450->var_4004;
|
||||||
if ( !((((s16*)data)[2] + 8) & 0xF) )
|
if ( !((((s16*)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 )
|
||||||
@@ -834,9 +842,9 @@ void TeachyTvBackToOptionList(u8 taskId)
|
|||||||
ChangeBgY(3, 0x0, 0);
|
ChangeBgY(3, 0x0, 0);
|
||||||
ChangeBgX(3, 0x1000, 2);
|
ChangeBgX(3, 0x1000, 2);
|
||||||
ChangeBgY(3, 0x2800, 1);
|
ChangeBgY(3, 0x2800, 1);
|
||||||
((u8*)gUnknown_203F450)[0x4004] = 0;
|
gUnknown_203F450->var_4004 = 0;
|
||||||
((u8*)gUnknown_203F450)[0x4005] = 3;
|
gUnknown_203F450->var_4005 = 3;
|
||||||
((u8*)gUnknown_203F450)[0x4006] = 0;
|
gUnknown_203F450->var_4006 = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -886,7 +894,7 @@ 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 ( ((u8*)gUnknown_203F450)[0x4006] != 1 )
|
if ( gUnknown_203F450->var_4006 != 1 )
|
||||||
{
|
{
|
||||||
res = TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(
|
res = TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(
|
||||||
(u32)((x << 16) - 0x100000) >> 16,
|
(u32)((x << 16) - 0x100000) >> 16,
|
||||||
@@ -920,7 +928,7 @@ void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite)
|
|||||||
u32 diff1, diff2;
|
u32 diff1, diff2;
|
||||||
s16 *data = gTasks[sprite->data[0]].data;
|
s16 *data = gTasks[sprite->data[0]].data;
|
||||||
struct Sprite *objAddr = &gSprites[data[1]];
|
struct Sprite *objAddr = &gSprites[data[1]];
|
||||||
if (((u8*)gUnknown_203F450)[0x4006] == 1)
|
if (gUnknown_203F450->var_4006 == 1)
|
||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
else {
|
else {
|
||||||
if (!sprite->animCmdIndex)
|
if (!sprite->animCmdIndex)
|
||||||
@@ -950,14 +958,14 @@ void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite)
|
|||||||
u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y)
|
u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y)
|
||||||
{
|
{
|
||||||
const u8 * arr;
|
const u8 * arr;
|
||||||
u8 *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;
|
ptr = gUnknown_203F450;
|
||||||
high = ((y >> 4) + ptr[0x4005]) << 4;
|
high = ((y >> 4) + ptr->var_4005) << 4;
|
||||||
low = ((x >> 4) + ptr[0x4004]);
|
low = ((x >> 4) + ptr->var_4004);
|
||||||
return arr[high+low];
|
return arr[high+low];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user