some more functions
This commit is contained in:
+3
-3
@@ -1550,8 +1550,8 @@ MakeObjectTemplateFromFieldObjectTemplate: @ 805E960
|
|||||||
bx r0
|
bx r0
|
||||||
thumb_func_end MakeObjectTemplateFromFieldObjectTemplate
|
thumb_func_end MakeObjectTemplateFromFieldObjectTemplate
|
||||||
|
|
||||||
thumb_func_start AddPseudoFieldObject
|
thumb_func_start AddPseudoEventObject
|
||||||
AddPseudoFieldObject: @ 805E978
|
AddPseudoEventObject: @ 805E978
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
sub sp, 0x1C
|
sub sp, 0x1C
|
||||||
ldr r4, [sp, 0x2C]
|
ldr r4, [sp, 0x2C]
|
||||||
@@ -1612,7 +1612,7 @@ _0805E9E4:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0805E9F0: .4byte 0x0000ffff
|
_0805E9F0: .4byte 0x0000ffff
|
||||||
_0805E9F4: .4byte gSprites
|
_0805E9F4: .4byte gSprites
|
||||||
thumb_func_end AddPseudoFieldObject
|
thumb_func_end AddPseudoEventObject
|
||||||
|
|
||||||
thumb_func_start sprite_new
|
thumb_func_start sprite_new
|
||||||
sprite_new: @ 805E9F8
|
sprite_new: @ 805E9F8
|
||||||
|
|||||||
+1
-1
@@ -2789,7 +2789,7 @@ sub_809EF54: @ 809EF54
|
|||||||
str r2, [sp]
|
str r2, [sp]
|
||||||
movs r2, 0x38
|
movs r2, 0x38
|
||||||
movs r3, 0x25
|
movs r3, 0x25
|
||||||
bl AddPseudoFieldObject
|
bl AddPseudoEventObject
|
||||||
adds r1, r0, 0
|
adds r1, r0, 0
|
||||||
lsls r1, 24
|
lsls r1, 24
|
||||||
lsrs r1, 24
|
lsrs r1, 24
|
||||||
|
|||||||
+1
-1
@@ -7888,7 +7888,7 @@ _080588C6:
|
|||||||
movs r2, 0
|
movs r2, 0
|
||||||
str r2, [sp]
|
str r2, [sp]
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl AddPseudoFieldObject
|
bl AddPseudoEventObject
|
||||||
strb r0, [r4, 0x4]
|
strb r0, [r4, 0x4]
|
||||||
ldrb r1, [r4, 0x4]
|
ldrb r1, [r4, 0x4]
|
||||||
lsls r0, r1, 4
|
lsls r0, r1, 4
|
||||||
|
|||||||
+1
-1
@@ -2017,7 +2017,7 @@ _0809BA56:
|
|||||||
str r0, [sp]
|
str r0, [sp]
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
ldr r1, _0809BAF4 @ =SpriteCallbackDummy
|
ldr r1, _0809BAF4 @ =SpriteCallbackDummy
|
||||||
bl AddPseudoFieldObject
|
bl AddPseudoEventObject
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r0, 24
|
lsrs r0, 24
|
||||||
lsls r2, r0, 4
|
lsls r2, r0, 4
|
||||||
|
|||||||
+9
-204
@@ -5,201 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_815AF5C
|
|
||||||
sub_815AF5C: @ 815AF5C
|
|
||||||
push {lr}
|
|
||||||
movs r0, 0xB6
|
|
||||||
lsls r0, 1
|
|
||||||
movs r1, 0x1
|
|
||||||
bl CheckBagHasItem
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0815AF84
|
|
||||||
ldr r0, _0815AF7C @ =gUnknown_203F450
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, _0815AF80 @ =0x00004007
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0xFF
|
|
||||||
strb r1, [r0]
|
|
||||||
b _0815AF96
|
|
||||||
.align 2, 0
|
|
||||||
_0815AF7C: .4byte gUnknown_203F450
|
|
||||||
_0815AF80: .4byte 0x00004007
|
|
||||||
_0815AF84:
|
|
||||||
ldr r0, _0815AF9C @ =gUnknown_8479380
|
|
||||||
ldr r1, _0815AFA0 @ =gTeachyTV_StaticResources+6
|
|
||||||
bl AddScrollIndicatorArrowPair
|
|
||||||
ldr r1, _0815AFA4 @ =gUnknown_203F450
|
|
||||||
ldr r1, [r1]
|
|
||||||
ldr r2, _0815AFA8 @ =0x00004007
|
|
||||||
adds r1, r2
|
|
||||||
strb r0, [r1]
|
|
||||||
_0815AF96:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815AF9C: .4byte gUnknown_8479380
|
|
||||||
_0815AFA0: .4byte gTeachyTV_StaticResources+6
|
|
||||||
_0815AFA4: .4byte gUnknown_203F450
|
|
||||||
_0815AFA8: .4byte 0x00004007
|
|
||||||
thumb_func_end sub_815AF5C
|
|
||||||
|
|
||||||
thumb_func_start sub_815AFAC
|
|
||||||
sub_815AFAC: @ 815AFAC
|
|
||||||
push {r4,lr}
|
|
||||||
ldr r4, _0815AFD0 @ =gUnknown_203F450
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r2, _0815AFD4 @ =0x00004007
|
|
||||||
adds r1, r0, r2
|
|
||||||
ldrb r0, [r1]
|
|
||||||
cmp r0, 0xFF
|
|
||||||
beq _0815AFCA
|
|
||||||
bl RemoveScrollIndicatorArrowPair
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r1, _0815AFD4 @ =0x00004007
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0xFF
|
|
||||||
strb r1, [r0]
|
|
||||||
_0815AFCA:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815AFD0: .4byte gUnknown_203F450
|
|
||||||
_0815AFD4: .4byte 0x00004007
|
|
||||||
thumb_func_end sub_815AFAC
|
|
||||||
|
|
||||||
thumb_func_start TeachyTvAudioByInput
|
|
||||||
TeachyTvAudioByInput: @ 815AFD8
|
|
||||||
push {lr}
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
cmp r1, 0x1
|
|
||||||
beq _0815AFE8
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
_0815AFE8:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end TeachyTvAudioByInput
|
|
||||||
|
|
||||||
thumb_func_start TeachyTvInitIo
|
|
||||||
TeachyTvInitIo: @ 815AFEC
|
|
||||||
push {lr}
|
|
||||||
movs r0, 0x48
|
|
||||||
movs r1, 0x3F
|
|
||||||
bl SetGpuReg
|
|
||||||
movs r0, 0x4A
|
|
||||||
movs r1, 0x1F
|
|
||||||
bl SetGpuReg
|
|
||||||
movs r0, 0x50
|
|
||||||
movs r1, 0xCC
|
|
||||||
bl SetGpuReg
|
|
||||||
movs r0, 0x54
|
|
||||||
movs r1, 0x5
|
|
||||||
bl SetGpuReg
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end TeachyTvInitIo
|
|
||||||
|
|
||||||
thumb_func_start TeachyTvSetupObj
|
|
||||||
TeachyTvSetupObj: @ 815B014
|
|
||||||
push {lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
ldr r1, _0815B054 @ =SpriteCallbackDummy
|
|
||||||
movs r0, 0x8
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x5A
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0
|
|
||||||
bl AddPseudoFieldObject
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, _0815B058 @ =gSprites
|
|
||||||
lsls r2, r0, 4
|
|
||||||
adds r2, r0
|
|
||||||
lsls r2, 2
|
|
||||||
adds r2, r1
|
|
||||||
ldrb r3, [r2, 0x5]
|
|
||||||
movs r1, 0xD
|
|
||||||
negs r1, r1
|
|
||||||
ands r1, r3
|
|
||||||
movs r3, 0x8
|
|
||||||
orrs r1, r3
|
|
||||||
strb r1, [r2, 0x5]
|
|
||||||
adds r2, 0x3E
|
|
||||||
ldrb r1, [r2]
|
|
||||||
movs r3, 0x4
|
|
||||||
orrs r1, r3
|
|
||||||
strb r1, [r2]
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_0815B054: .4byte SpriteCallbackDummy
|
|
||||||
_0815B058: .4byte gSprites
|
|
||||||
thumb_func_end TeachyTvSetupObj
|
|
||||||
|
|
||||||
thumb_func_start sub_815B05C
|
|
||||||
sub_815B05C: @ 815B05C
|
|
||||||
push {r4,r5,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
lsls r3, 24
|
|
||||||
lsrs r3, 24
|
|
||||||
ldr r5, _0815B090 @ =gSprites
|
|
||||||
lsls r0, r4, 4
|
|
||||||
adds r0, r4
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r5
|
|
||||||
strh r1, [r0, 0x24]
|
|
||||||
strh r2, [r0, 0x26]
|
|
||||||
adds r4, r0, 0
|
|
||||||
adds r4, 0x3E
|
|
||||||
ldrb r2, [r4]
|
|
||||||
movs r1, 0x5
|
|
||||||
negs r1, r1
|
|
||||||
ands r1, r2
|
|
||||||
strb r1, [r4]
|
|
||||||
adds r1, r3, 0
|
|
||||||
bl StartSpriteAnim
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815B090: .4byte gSprites
|
|
||||||
thumb_func_end sub_815B05C
|
|
||||||
|
|
||||||
thumb_func_start sub_815B094
|
|
||||||
sub_815B094: @ 815B094
|
|
||||||
push {lr}
|
|
||||||
ldr r1, _0815B0AC @ =0x00000c64
|
|
||||||
movs r0, 0x44
|
|
||||||
bl SetGpuReg
|
|
||||||
ldr r1, _0815B0B0 @ =0x00001cd4
|
|
||||||
movs r0, 0x40
|
|
||||||
bl SetGpuReg
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815B0AC: .4byte 0x00000c64
|
|
||||||
_0815B0B0: .4byte 0x00001cd4
|
|
||||||
thumb_func_end sub_815B094
|
|
||||||
|
|
||||||
thumb_func_start sub_815B0B4
|
|
||||||
sub_815B0B4: @ 815B0B4
|
|
||||||
push {lr}
|
|
||||||
movs r0, 0x44
|
|
||||||
movs r1, 0
|
|
||||||
bl SetGpuReg
|
|
||||||
movs r0, 0x40
|
|
||||||
movs r1, 0
|
|
||||||
bl SetGpuReg
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_815B0B4
|
|
||||||
|
|
||||||
thumb_func_start sub_815B0CC
|
thumb_func_start sub_815B0CC
|
||||||
sub_815B0CC: @ 815B0CC
|
sub_815B0CC: @ 815B0CC
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
@@ -261,7 +66,7 @@ TeachyTvConfigRboxAndObj: @ 815B118
|
|||||||
adds r7, r0, r1
|
adds r7, r0, r1
|
||||||
movs r0, 0x1
|
movs r0, 0x1
|
||||||
bl ClearWindowTilemap
|
bl ClearWindowTilemap
|
||||||
bl sub_815B0B4
|
bl TeachyTvClearWindowRegs
|
||||||
ldr r0, _0815B198 @ =gTeachyTV_StaticResources
|
ldr r0, _0815B198 @ =gTeachyTV_StaticResources
|
||||||
ldrb r0, [r0, 0x5]
|
ldrb r0, [r0, 0x5]
|
||||||
cmp r0, 0
|
cmp r0, 0
|
||||||
@@ -272,7 +77,7 @@ TeachyTvConfigRboxAndObj: @ 815B118
|
|||||||
movs r1, 0x78
|
movs r1, 0x78
|
||||||
movs r2, 0x38
|
movs r2, 0x38
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_815B05C
|
bl TeachyTvSetSpriteCoordsAndSwitchFrame
|
||||||
movs r4, 0xC0
|
movs r4, 0xC0
|
||||||
lsls r4, 6
|
lsls r4, 6
|
||||||
movs r0, 0x3
|
movs r0, 0x3
|
||||||
@@ -311,7 +116,7 @@ _0815B1A8:
|
|||||||
movs r1, 0x78
|
movs r1, 0x78
|
||||||
movs r2, 0x38
|
movs r2, 0x38
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_815B05C
|
bl TeachyTvSetSpriteCoordsAndSwitchFrame
|
||||||
_0815B1B8:
|
_0815B1B8:
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r5, 0x8]
|
strh r0, [r5, 0x8]
|
||||||
@@ -517,12 +322,12 @@ _0815B33E:
|
|||||||
adds r1, r2, 0x6
|
adds r1, r2, 0x6
|
||||||
adds r2, 0x8
|
adds r2, 0x8
|
||||||
bl DestroyListMenu
|
bl DestroyListMenu
|
||||||
bl sub_815B0B4
|
bl TeachyTvClearWindowRegs
|
||||||
movs r0, 0x1
|
movs r0, 0x1
|
||||||
bl ClearWindowTilemap
|
bl ClearWindowTilemap
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
bl schedule_bg_copy_tilemap_to_vram
|
||||||
bl sub_815AFAC
|
bl TeachyTvRemoveScrollIndicatorArrowPair
|
||||||
strh r4, [r6, 0x6]
|
strh r4, [r6, 0x6]
|
||||||
strh r4, [r6, 0x4]
|
strh r4, [r6, 0x4]
|
||||||
ldr r1, _0815B384 @ =gTasks
|
ldr r1, _0815B384 @ =gTasks
|
||||||
@@ -578,7 +383,7 @@ sub_815B38C: @ 815B38C
|
|||||||
movs r1, 0x8
|
movs r1, 0x8
|
||||||
movs r2, 0x38
|
movs r2, 0x38
|
||||||
movs r3, 0x7
|
movs r3, 0x7
|
||||||
bl sub_815B05C
|
bl TeachyTvSetSpriteCoordsAndSwitchFrame
|
||||||
movs r0, 0x2
|
movs r0, 0x2
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
bl schedule_bg_copy_tilemap_to_vram
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
@@ -752,7 +557,7 @@ sub_815B4EC: @ 815B4EC
|
|||||||
movs r1, 0
|
movs r1, 0
|
||||||
movs r2, 0
|
movs r2, 0
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_815B05C
|
bl TeachyTvSetSpriteCoordsAndSwitchFrame
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
movs r1, 0xCC
|
movs r1, 0xCC
|
||||||
bl FillWindowPixelBuffer
|
bl FillWindowPixelBuffer
|
||||||
@@ -1320,8 +1125,8 @@ _0815B94C:
|
|||||||
str r1, [r0]
|
str r1, [r0]
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
bl PutWindowTilemap
|
bl PutWindowTilemap
|
||||||
bl sub_815AF5C
|
bl TeachyTvSetupScrollIndicatorArrowPair
|
||||||
bl sub_815B094
|
bl TeachyTvSetWindowRegs
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
bl schedule_bg_copy_tilemap_to_vram
|
||||||
movs r0, 0x3
|
movs r0, 0x3
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ void FieldObjectClearAnim(struct MapObject *);
|
|||||||
void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
|
void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
|
||||||
void SpawnFieldObjectsInView(s16, s16);
|
void SpawnFieldObjectsInView(s16, s16);
|
||||||
u8 sprite_new(u8, u8, s16, s16, u8, u8);
|
u8 sprite_new(u8, u8, s16, s16, u8, u8);
|
||||||
u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8);
|
u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16, s16, u8);
|
||||||
u8 show_sprite(u8, u8, u8);
|
u8 show_sprite(u8, u8, u8);
|
||||||
u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
|
u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
|
||||||
u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
|
u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
// Exported RAM declarations
|
// Exported RAM declarations
|
||||||
|
|
||||||
struct ScrollIndicatorArrowPairTemplate
|
struct ScrollArrowsTemplate
|
||||||
{
|
{
|
||||||
u8 unk_00;
|
u8 unk_00;
|
||||||
u8 unk_01;
|
u8 unk_01;
|
||||||
@@ -25,7 +25,7 @@ struct ScrollIndicatorArrowPairTemplate
|
|||||||
|
|
||||||
// Exported ROM declarations
|
// Exported ROM declarations
|
||||||
u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
|
u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
|
||||||
u8 AddScrollIndicatorArrowPair(const struct ScrollIndicatorArrowPairTemplate * template, u16 * a1);
|
u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1);
|
||||||
void RemoveScrollIndicatorArrowPair(u8);
|
void RemoveScrollIndicatorArrowPair(u8);
|
||||||
|
|
||||||
#endif //GUARD_MENU_INDICATORS_H
|
#endif //GUARD_MENU_INDICATORS_H
|
||||||
|
|||||||
+1
-1
@@ -1400,7 +1400,7 @@ static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId)
|
|||||||
|
|
||||||
static void FC_CreateScrollIndicatorArrowPair(void)
|
static void FC_CreateScrollIndicatorArrowPair(void)
|
||||||
{
|
{
|
||||||
struct ScrollIndicatorArrowPairTemplate template = {
|
struct ScrollArrowsTemplate template = {
|
||||||
2,
|
2,
|
||||||
40,
|
40,
|
||||||
26,
|
26,
|
||||||
|
|||||||
@@ -460,7 +460,7 @@ struct UnkStruct_203F3CC
|
|||||||
/*01cc*/ u8 filler_01CC[2];
|
/*01cc*/ u8 filler_01CC[2];
|
||||||
/*01ce*/ u8 unk_01CE[41];
|
/*01ce*/ u8 unk_01CE[41];
|
||||||
/*01f7*/ u8 unk_01F7[10][41];
|
/*01f7*/ u8 unk_01F7[10][41];
|
||||||
/*0394*/ struct ScrollIndicatorArrowPairTemplate unk_0394;
|
/*0394*/ struct ScrollArrowsTemplate unk_0394;
|
||||||
/*03a4*/ u8 buffer_03A4[0x1000];
|
/*03a4*/ u8 buffer_03A4[0x1000];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -478,7 +478,7 @@ const struct WindowTemplate gUnknown_8468040[] = {
|
|||||||
{0, 1, 0, 28, 3, 15, 0x000},
|
{0, 1, 0, 28, 3, 15, 0x000},
|
||||||
{2, 1, 3, 28, 20, 15, 0x000}
|
{2, 1, 3, 28, 20, 15, 0x000}
|
||||||
};
|
};
|
||||||
const struct ScrollIndicatorArrowPairTemplate gUnknown_8468050 = {
|
const struct ScrollArrowsTemplate gUnknown_8468050 = {
|
||||||
0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98,
|
0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98,
|
||||||
0x0000, 0x0002, 0x1000, 0x1000, 0x0, 0x000
|
0x0000, 0x0002, 0x1000, 0x1000, 0x0, 0x000
|
||||||
};
|
};
|
||||||
|
|||||||
+87
-11
@@ -15,6 +15,8 @@
|
|||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "list_menu.h"
|
#include "list_menu.h"
|
||||||
#include "item.h"
|
#include "item.h"
|
||||||
|
#include "menu_indicators.h"
|
||||||
|
#include "field_map_obj.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
|
|
||||||
@@ -37,12 +39,12 @@ void sub_815ABC4(u8 mode, void (*cb)());
|
|||||||
void CB2_ReturnToTeachyTV();
|
void CB2_ReturnToTeachyTV();
|
||||||
extern void sub_815AC20();
|
extern void sub_815AC20();
|
||||||
void TeachyTvCreateAndRenderRbox();
|
void TeachyTvCreateAndRenderRbox();
|
||||||
extern void TeachyTvInitIo();
|
void TeachyTvInitIo();
|
||||||
extern u8 TeachyTvSetupObj();
|
u8 TeachyTvSetupObjEventAndOam();
|
||||||
extern void TeachyTvConfigRboxAndObj(u8);
|
extern void TeachyTvConfigRboxAndObj(u8);
|
||||||
u8 TeachyTvSetupWindow();
|
u8 TeachyTvSetupWindow();
|
||||||
extern void sub_815AF5C();
|
void TeachyTvSetupScrollIndicatorArrowPair();
|
||||||
extern void sub_815B094();
|
void TeachyTvSetWindowRegs();
|
||||||
void TeachyTvSetupBg();
|
void TeachyTvSetupBg();
|
||||||
void TeachyTvLoadGraphic();
|
void TeachyTvLoadGraphic();
|
||||||
extern void TeachyTvTaskFunction(u8);
|
extern void TeachyTvTaskFunction(u8);
|
||||||
@@ -148,7 +150,7 @@ void C2TeachyTvMainCallback()
|
|||||||
if ( gTeachyTV_StaticResources.mode == 2 )
|
if ( gTeachyTV_StaticResources.mode == 2 )
|
||||||
{
|
{
|
||||||
taskId = CreateTask(TeachyTvTaskFunction, 0);
|
taskId = CreateTask(TeachyTvTaskFunction, 0);
|
||||||
gTasks[taskId].data[1] = TeachyTvSetupObj();
|
gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
|
||||||
TeachyTvConfigRboxAndObj(taskId);
|
TeachyTvConfigRboxAndObj(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -156,10 +158,10 @@ void C2TeachyTvMainCallback()
|
|||||||
taskId = CreateTask(sub_815B2C0, 0);
|
taskId = CreateTask(sub_815B2C0, 0);
|
||||||
x = (u32)TeachyTvSetupWindow();
|
x = (u32)TeachyTvSetupWindow();
|
||||||
gTasks[taskId].data[0] = (x << 24) >> 24;
|
gTasks[taskId].data[0] = (x << 24) >> 24;
|
||||||
gTasks[taskId].data[1] = TeachyTvSetupObj();
|
gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
|
||||||
sub_815AF5C();
|
TeachyTvSetupScrollIndicatorArrowPair();
|
||||||
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
|
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
|
||||||
sub_815B094();
|
TeachyTvSetWindowRegs();
|
||||||
}
|
}
|
||||||
schedule_bg_copy_tilemap_to_vram(0);
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
schedule_bg_copy_tilemap_to_vram(1u);
|
schedule_bg_copy_tilemap_to_vram(1u);
|
||||||
@@ -219,7 +221,7 @@ void TeachyTvCreateAndRenderRbox()
|
|||||||
extern struct ListMenuTemplate gUnknown_8479368;
|
extern struct ListMenuTemplate gUnknown_8479368;
|
||||||
extern struct ListMenuItem gUnknown_8479340;
|
extern struct ListMenuItem gUnknown_8479340;
|
||||||
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
||||||
extern void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
|
void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
|
||||||
|
|
||||||
u8 TeachyTvSetupWindow()
|
u8 TeachyTvSetupWindow()
|
||||||
{
|
{
|
||||||
@@ -228,7 +230,7 @@ u8 TeachyTvSetupWindow()
|
|||||||
gMultiuseListMenuTemplate.windowId = 1;
|
gMultiuseListMenuTemplate.windowId = 1;
|
||||||
gMultiuseListMenuTemplate.moveCursorFunc = TeachyTvAudioByInput;
|
gMultiuseListMenuTemplate.moveCursorFunc = TeachyTvAudioByInput;
|
||||||
hasItem = (u8)CheckBagHasItem(ITEM_TM_CASE, 1u);
|
hasItem = (u8)CheckBagHasItem(ITEM_TM_CASE, 1u);
|
||||||
if ( !(v0 << 24) )
|
if ( !(hasItem << 24) )
|
||||||
{
|
{
|
||||||
gMultiuseListMenuTemplate.items = &gUnknown_8479340;
|
gMultiuseListMenuTemplate.items = &gUnknown_8479340;
|
||||||
gMultiuseListMenuTemplate.totalItems = 5;
|
gMultiuseListMenuTemplate.totalItems = 5;
|
||||||
@@ -239,4 +241,78 @@ u8 TeachyTvSetupWindow()
|
|||||||
&gMultiuseListMenuTemplate,
|
&gMultiuseListMenuTemplate,
|
||||||
gTeachyTV_StaticResources.scrollOffset,
|
gTeachyTV_StaticResources.scrollOffset,
|
||||||
gTeachyTV_StaticResources.selectedRow);
|
gTeachyTV_StaticResources.selectedRow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern const struct ScrollArrowsTemplate gUnknown_8479380;
|
||||||
|
|
||||||
|
void TeachyTvSetupScrollIndicatorArrowPair()
|
||||||
|
{
|
||||||
|
int hasItem;
|
||||||
|
hasItem = (u8)CheckBagHasItem(ITEM_TM_CASE, 1u);
|
||||||
|
if ( ! hasItem << 24 ) {
|
||||||
|
u8 * temp = (u8 *)gUnknown_203F450;
|
||||||
|
*((u8 *)temp + 0x4007) = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
u8 *temp, res;
|
||||||
|
res = AddScrollIndicatorArrowPair(
|
||||||
|
&gUnknown_8479380,
|
||||||
|
&(gTeachyTV_StaticResources.scrollOffset));
|
||||||
|
temp = (u8 *)gUnknown_203F450;
|
||||||
|
*((u8 *)temp + 0x4007) = res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvRemoveScrollIndicatorArrowPair()
|
||||||
|
{
|
||||||
|
u8 *temp = ((u8*)gUnknown_203F450 + 0x4007);
|
||||||
|
if ( *temp != 0xFF )
|
||||||
|
{
|
||||||
|
RemoveScrollIndicatorArrowPair(*temp);
|
||||||
|
*((u8*)gUnknown_203F450 + 0x4007) = 0xFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvAudioByInput(s32 notUsed, bool8 play, struct ListMenu *notUsedAlt)
|
||||||
|
{
|
||||||
|
if ( play != 1 )
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvInitIo()
|
||||||
|
{
|
||||||
|
SetGpuReg(0x48u, 0x3Fu);
|
||||||
|
SetGpuReg(0x4Au, 0x1Fu);
|
||||||
|
SetGpuReg(0x50u, 0xCCu);
|
||||||
|
SetGpuReg(0x54u, 5u);
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 TeachyTvSetupObjEventAndOam()
|
||||||
|
{
|
||||||
|
u8 temp = AddPseudoEventObject(90, SpriteCallbackDummy, 0, 0, 8);
|
||||||
|
gSprites[temp].oam.priority = 2;
|
||||||
|
gSprites[temp].invisible = 1;
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvSetSpriteCoordsAndSwitchFrame(u8 objId, u16 x, u16 y, u8 frame)
|
||||||
|
{
|
||||||
|
gSprites[objId].pos2.x = x;
|
||||||
|
gSprites[objId].pos2.y = y;
|
||||||
|
gSprites[objId].invisible = 0;
|
||||||
|
StartSpriteAnim(&gSprites[objId], frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvSetWindowRegs()
|
||||||
|
{
|
||||||
|
SetGpuReg(0x44u, 0xC64u);
|
||||||
|
SetGpuReg(0x40u, 0x1CD4u);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvClearWindowRegs()
|
||||||
|
{
|
||||||
|
SetGpuReg(0x44u, 0);
|
||||||
|
SetGpuReg(0x40u, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user