slot_machine: through sub_813FBC0
This commit is contained in:
@@ -5,516 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start PlaySlotMachine
|
||||
PlaySlotMachine: @ 813F804
|
||||
push {r4-r6,lr}
|
||||
adds r6, r1, 0
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
bl ResetTasks
|
||||
ldr r4, _0813F828 @ =gUnknown_203F3A0
|
||||
movs r0, 0x54
|
||||
bl Alloc
|
||||
str r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0813F82C
|
||||
adds r0, r6, 0
|
||||
bl SetMainCallback2
|
||||
b _0813F840
|
||||
.align 2, 0
|
||||
_0813F828: .4byte gUnknown_203F3A0
|
||||
_0813F82C:
|
||||
cmp r5, 0x5
|
||||
bls _0813F832
|
||||
movs r5, 0
|
||||
_0813F832:
|
||||
strh r5, [r0, 0x4]
|
||||
str r6, [r0]
|
||||
bl sub_813F84C
|
||||
ldr r0, _0813F848 @ =sub_813F898
|
||||
bl SetMainCallback2
|
||||
_0813F840:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813F848: .4byte sub_813F898
|
||||
thumb_func_end PlaySlotMachine
|
||||
|
||||
thumb_func_start sub_813F84C
|
||||
sub_813F84C: @ 813F84C
|
||||
push {r4-r6,lr}
|
||||
movs r1, 0
|
||||
strh r1, [r0, 0x6]
|
||||
strh r1, [r0, 0xE]
|
||||
adds r0, 0x50
|
||||
strh r1, [r0]
|
||||
movs r3, 0
|
||||
ldr r6, _0813F894 @ =gUnknown_203F3A0
|
||||
movs r4, 0
|
||||
movs r5, 0x15
|
||||
_0813F860:
|
||||
ldr r2, [r6]
|
||||
lsls r1, r3, 2
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x14
|
||||
adds r0, r1
|
||||
str r4, [r0]
|
||||
lsls r1, r3, 1
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x20
|
||||
adds r0, r1
|
||||
strh r4, [r0]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x26
|
||||
adds r0, r1
|
||||
strh r4, [r0]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x2C
|
||||
adds r0, r1
|
||||
strh r5, [r0]
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x2
|
||||
ble _0813F860
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813F894: .4byte gUnknown_203F3A0
|
||||
thumb_func_end sub_813F84C
|
||||
|
||||
thumb_func_start sub_813F898
|
||||
sub_813F898: @ 813F898
|
||||
push {r4,lr}
|
||||
bl RunTasks
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
ldr r0, _0813F8BC @ =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r4, r0, r1
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0813F8C0
|
||||
cmp r0, 0x1
|
||||
beq _0813F8EC
|
||||
b _0813F916
|
||||
.align 2, 0
|
||||
_0813F8BC: .4byte gMain
|
||||
_0813F8C0:
|
||||
bl sub_814104C
|
||||
cmp r0, 0
|
||||
beq _0813F8DC
|
||||
ldr r0, _0813F8D8 @ =gUnknown_203F3A0
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0]
|
||||
bl SetMainCallback2
|
||||
bl sub_813F92C
|
||||
b _0813F916
|
||||
.align 2, 0
|
||||
_0813F8D8: .4byte gUnknown_203F3A0
|
||||
_0813F8DC:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_8141148
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
b _0813F916
|
||||
_0813F8EC:
|
||||
movs r0, 0
|
||||
bl sub_8141180
|
||||
cmp r0, 0
|
||||
bne _0813F916
|
||||
ldr r0, _0813F91C @ =sub_813F964
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
ldr r4, _0813F920 @ =gUnknown_203F3A0
|
||||
ldr r1, [r4]
|
||||
strb r0, [r1, 0x10]
|
||||
ldr r0, _0813F924 @ =sub_8140060
|
||||
movs r1, 0x1
|
||||
bl CreateTask
|
||||
ldr r1, [r4]
|
||||
strb r0, [r1, 0x11]
|
||||
ldr r0, _0813F928 @ =sub_813F94C
|
||||
bl SetMainCallback2
|
||||
_0813F916:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813F91C: .4byte sub_813F964
|
||||
_0813F920: .4byte gUnknown_203F3A0
|
||||
_0813F924: .4byte sub_8140060
|
||||
_0813F928: .4byte sub_813F94C
|
||||
thumb_func_end sub_813F898
|
||||
|
||||
thumb_func_start sub_813F92C
|
||||
sub_813F92C: @ 813F92C
|
||||
push {r4,lr}
|
||||
bl sub_8141094
|
||||
ldr r4, _0813F948 @ =gUnknown_203F3A0
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0813F942
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0813F942:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813F948: .4byte gUnknown_203F3A0
|
||||
thumb_func_end sub_813F92C
|
||||
|
||||
thumb_func_start sub_813F94C
|
||||
sub_813F94C: @ 813F94C
|
||||
push {lr}
|
||||
bl RunTasks
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
bl UpdatePaletteFade
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_813F94C
|
||||
|
||||
thumb_func_start sub_813F964
|
||||
sub_813F964: @ 813F964
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _0813F988 @ =gTasks+0x8
|
||||
adds r6, r1, r0
|
||||
movs r1, 0
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, 0x4
|
||||
bls _0813F97E
|
||||
b _0813FBB8
|
||||
_0813F97E:
|
||||
lsls r0, 2
|
||||
ldr r1, _0813F98C @ =_0813F990
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0813F988: .4byte gTasks+0x8
|
||||
_0813F98C: .4byte _0813F990
|
||||
.align 2, 0
|
||||
_0813F990:
|
||||
.4byte _0813F9A4
|
||||
.4byte _0813FAA8
|
||||
.4byte _0813FAE4
|
||||
.4byte _0813FB08
|
||||
.4byte _0813FB48
|
||||
_0813F9A4:
|
||||
bl GetCoins
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _0813F9BC
|
||||
ldr r0, _0813F9B8 @ =sub_813FBC0
|
||||
bl sub_8140030
|
||||
b _0813FBB8
|
||||
.align 2, 0
|
||||
_0813F9B8: .4byte sub_813FBC0
|
||||
_0813F9BC:
|
||||
ldr r1, _0813F9F4 @ =gMain
|
||||
ldrh r2, [r1, 0x2E]
|
||||
movs r0, 0x80
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _0813F9FC
|
||||
ldr r0, _0813F9F8 @ =gUnknown_203F3A0
|
||||
ldr r1, [r0]
|
||||
ldrh r0, [r1, 0xE]
|
||||
adds r0, 0x1
|
||||
strh r0, [r1, 0xE]
|
||||
movs r0, 0x1
|
||||
bl TakeCoins
|
||||
movs r0, 0x58
|
||||
bl PlaySE
|
||||
movs r0, 0x8
|
||||
movs r1, 0
|
||||
bl sub_8141148
|
||||
movs r0, 0x2
|
||||
movs r1, 0x1
|
||||
bl sub_8141148
|
||||
movs r0, 0x1
|
||||
b _0813FBB6
|
||||
.align 2, 0
|
||||
_0813F9F4: .4byte gMain
|
||||
_0813F9F8: .4byte gUnknown_203F3A0
|
||||
_0813F9FC:
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _0813FA5C
|
||||
ldr r5, _0813FA2C @ =gUnknown_203F3A0
|
||||
ldr r0, [r5]
|
||||
ldrh r0, [r0, 0xE]
|
||||
movs r7, 0x3
|
||||
subs r4, r7, r0
|
||||
bl GetCoins
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, r4
|
||||
blt _0813FA30
|
||||
ldr r0, [r5]
|
||||
strh r7, [r0, 0xE]
|
||||
lsls r0, r4, 16
|
||||
lsrs r0, 16
|
||||
bl TakeCoins
|
||||
b _0813FA42
|
||||
.align 2, 0
|
||||
_0813FA2C: .4byte gUnknown_203F3A0
|
||||
_0813FA30:
|
||||
bl GetCoins
|
||||
ldr r1, [r5]
|
||||
ldrh r2, [r1, 0xE]
|
||||
adds r0, r2
|
||||
strh r0, [r1, 0xE]
|
||||
movs r0, 0
|
||||
bl SetCoins
|
||||
_0813FA42:
|
||||
movs r0, 0x58
|
||||
bl PlaySE
|
||||
movs r0, 0x8
|
||||
movs r1, 0
|
||||
bl sub_8141148
|
||||
movs r0, 0x2
|
||||
movs r1, 0x1
|
||||
bl sub_8141148
|
||||
movs r0, 0x1
|
||||
b _0813FBB6
|
||||
_0813FA5C:
|
||||
movs r0, 0x1
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _0813FA78
|
||||
ldr r0, _0813FA74 @ =gUnknown_203F3A0
|
||||
ldr r0, [r0]
|
||||
ldrh r0, [r0, 0xE]
|
||||
cmp r0, 0
|
||||
beq _0813FA78
|
||||
movs r0, 0x2
|
||||
b _0813FBB6
|
||||
.align 2, 0
|
||||
_0813FA74: .4byte gUnknown_203F3A0
|
||||
_0813FA78:
|
||||
ldrh r1, [r1, 0x2E]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813FA90
|
||||
ldr r0, _0813FA8C @ =sub_813FCAC
|
||||
bl sub_8140030
|
||||
b _0813FBB8
|
||||
.align 2, 0
|
||||
_0813FA8C: .4byte sub_813FCAC
|
||||
_0813FA90:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0813FA9A
|
||||
b _0813FBB8
|
||||
_0813FA9A:
|
||||
ldr r0, _0813FAA4 @ =sub_813FC2C
|
||||
bl sub_8140030
|
||||
b _0813FBB8
|
||||
.align 2, 0
|
||||
_0813FAA4: .4byte sub_813FC2C
|
||||
_0813FAA8:
|
||||
movs r0, 0
|
||||
bl sub_8141180
|
||||
cmp r0, 0
|
||||
beq _0813FAB4
|
||||
b _0813FBB8
|
||||
_0813FAB4:
|
||||
movs r0, 0x1
|
||||
bl sub_8141180
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0
|
||||
beq _0813FAC2
|
||||
b _0813FBB8
|
||||
_0813FAC2:
|
||||
ldr r0, _0813FADC @ =gUnknown_203F3A0
|
||||
ldr r0, [r0]
|
||||
ldrh r0, [r0, 0xE]
|
||||
cmp r0, 0x3
|
||||
beq _0813FAD6
|
||||
bl GetCoins
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _0813FAE0
|
||||
_0813FAD6:
|
||||
movs r0, 0x2
|
||||
b _0813FBB6
|
||||
.align 2, 0
|
||||
_0813FADC: .4byte gUnknown_203F3A0
|
||||
_0813FAE0:
|
||||
strh r4, [r6]
|
||||
b _0813FBB8
|
||||
_0813FAE4:
|
||||
bl sub_811539C
|
||||
bl sub_81409B4
|
||||
bl sub_8140148
|
||||
ldr r0, _0813FB04 @ =gUnknown_203F3A0
|
||||
ldr r1, [r0]
|
||||
movs r0, 0
|
||||
strh r0, [r1, 0x6]
|
||||
movs r0, 0x3
|
||||
movs r1, 0
|
||||
bl sub_8141148
|
||||
b _0813FBB4
|
||||
.align 2, 0
|
||||
_0813FB04: .4byte gUnknown_203F3A0
|
||||
_0813FB08:
|
||||
movs r0, 0
|
||||
bl sub_8141180
|
||||
cmp r0, 0
|
||||
bne _0813FBB8
|
||||
ldr r0, _0813FB40 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813FBB8
|
||||
movs r0, 0x18
|
||||
bl PlaySE
|
||||
ldr r4, _0813FB44 @ =gUnknown_203F3A0
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x6]
|
||||
adds r0, r1, 0
|
||||
bl sub_814016C
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x6]
|
||||
movs r1, 0
|
||||
bl sub_8141C30
|
||||
movs r0, 0x4
|
||||
b _0813FBB6
|
||||
.align 2, 0
|
||||
_0813FB40: .4byte gMain
|
||||
_0813FB44: .4byte gUnknown_203F3A0
|
||||
_0813FB48:
|
||||
ldr r5, _0813FB90 @ =gUnknown_203F3A0
|
||||
ldr r0, [r5]
|
||||
ldrh r0, [r0, 0x6]
|
||||
bl sub_81401A0
|
||||
cmp r0, 0
|
||||
bne _0813FBB8
|
||||
movs r0, 0
|
||||
bl sub_8141180
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0
|
||||
bne _0813FBB8
|
||||
ldr r1, [r5]
|
||||
ldrh r0, [r1, 0x6]
|
||||
adds r0, 0x1
|
||||
strh r0, [r1, 0x6]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x2
|
||||
bls _0813FBB4
|
||||
bl sub_8140A80
|
||||
ldr r1, [r5]
|
||||
strh r0, [r1, 0xA]
|
||||
strh r4, [r1, 0xE]
|
||||
strh r4, [r1, 0x6]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0
|
||||
bne _0813FB98
|
||||
ldr r0, _0813FB94 @ =sub_813FD84
|
||||
bl sub_8140030
|
||||
b _0813FBB8
|
||||
.align 2, 0
|
||||
_0813FB90: .4byte gUnknown_203F3A0
|
||||
_0813FB94: .4byte sub_813FD84
|
||||
_0813FB98:
|
||||
cmp r0, 0x6
|
||||
bne _0813FBA2
|
||||
movs r0, 0x1C
|
||||
bl IncrementGameStat
|
||||
_0813FBA2:
|
||||
bl sub_8140A70
|
||||
ldr r0, _0813FBB0 @ =sub_813FE1C
|
||||
bl sub_8140030
|
||||
b _0813FBB8
|
||||
.align 2, 0
|
||||
_0813FBB0: .4byte sub_813FE1C
|
||||
_0813FBB4:
|
||||
movs r0, 0x3
|
||||
_0813FBB6:
|
||||
strh r0, [r6]
|
||||
_0813FBB8:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_813F964
|
||||
|
||||
thumb_func_start sub_813FBC0
|
||||
sub_813FBC0: @ 813FBC0
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _0813FBE4 @ =gTasks+0x8
|
||||
adds r4, r1, r0
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x1
|
||||
beq _0813FBF8
|
||||
cmp r0, 0x1
|
||||
bgt _0813FBE8
|
||||
cmp r0, 0
|
||||
beq _0813FBEE
|
||||
b _0813FC1C
|
||||
.align 2, 0
|
||||
_0813FBE4: .4byte gTasks+0x8
|
||||
_0813FBE8:
|
||||
cmp r0, 0x2
|
||||
beq _0813FC0A
|
||||
b _0813FC1C
|
||||
_0813FBEE:
|
||||
movs r0, 0x9
|
||||
movs r1, 0
|
||||
bl sub_8141148
|
||||
b _0813FC02
|
||||
_0813FBF8:
|
||||
movs r0, 0
|
||||
bl sub_8141180
|
||||
cmp r0, 0
|
||||
bne _0813FC1C
|
||||
_0813FC02:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _0813FC1C
|
||||
_0813FC0A:
|
||||
ldr r0, _0813FC24 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0xF3
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813FC1C
|
||||
ldr r0, _0813FC28 @ =sub_813FFD8
|
||||
bl sub_8140030
|
||||
_0813FC1C:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813FC24: .4byte gMain
|
||||
_0813FC28: .4byte sub_813FFD8
|
||||
thumb_func_end sub_813FBC0
|
||||
|
||||
thumb_func_start sub_813FC2C
|
||||
sub_813FC2C: @ 813FC2C
|
||||
push {r4,lr}
|
||||
|
||||
@@ -22,6 +22,7 @@ extern const u16 gUnknown_84566A8[];
|
||||
|
||||
void sub_8112720(u8);
|
||||
void sub_8113550(u16, const u16 *);
|
||||
void sub_811539C(void);
|
||||
void sub_8115748(u16);
|
||||
u8 sub_8112CAC(void);
|
||||
bool8 sub_81119D4(void (*func)(void));
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void PlaySlotMachine(u8, void *);
|
||||
void PlaySlotMachine(u16, void (*)(void));
|
||||
|
||||
#endif // GUARD_SLOT_MACHINE_H
|
||||
|
||||
-468
@@ -1,468 +0,0 @@
|
||||
#ifndef GUARD_SONGS_H
|
||||
#define GUARD_SONGS_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
enum
|
||||
{
|
||||
/*0x00*/ SE_STOP,
|
||||
/*0x01*/ SE_KAIFUKU,
|
||||
/*0x02*/ SE_PC_LOGON,
|
||||
/*0x03*/ SE_PC_OFF,
|
||||
/*0x04*/ SE_PC_ON,
|
||||
/*0x05*/ SE_SELECT,
|
||||
/*0x06*/ SE_WIN_OPEN,
|
||||
/*0x07*/ SE_WALL_HIT,
|
||||
/*0x08*/ SE_DOOR,
|
||||
/*0x09*/ SE_KAIDAN,
|
||||
/*0x0A*/ SE_DANSA,
|
||||
/*0x0B*/ SE_JITENSYA,
|
||||
/*0x0C*/ SE_KOUKA_L, // Goggle told me Kouka means 'effectiveness' which makes sense, because
|
||||
/*0x0D*/ SE_KOUKA_M, // those three sounds play whenever you use a move
|
||||
/*0x0E*/ SE_KOUKA_H,
|
||||
/*0x0F*/ SE_BOWA2,
|
||||
/*0x10*/ SE_POKE_DEAD,
|
||||
/*0x11*/ SE_NIGERU,
|
||||
/*0x12*/ SE_JIDO_DOA,
|
||||
/*0x13*/ SE_NAMINORI,
|
||||
/*0x14*/ SE_BAN,
|
||||
/*0x15*/ SE_PIN,
|
||||
/*0x16*/ SE_BOO,
|
||||
/*0x17*/ SE_BOWA,
|
||||
/*0x18*/ SE_JYUNI,
|
||||
/*0x19*/ SE_A,
|
||||
/*0x1A*/ SE_I,
|
||||
/*0x1B*/ SE_U,
|
||||
/*0x1C*/ SE_E,
|
||||
/*0x1D*/ SE_O,
|
||||
/*0x1E*/ SE_N,
|
||||
/*0x1F*/ SE_SEIKAI,
|
||||
/*0x20*/ SE_HAZURE,
|
||||
/*0x21*/ SE_EXP,
|
||||
/*0x22*/ SE_JITE_PYOKO,
|
||||
/*0x23*/ SE_MU_PACHI,
|
||||
/*0x24*/ SE_TK_KASYA,
|
||||
/*0x25*/ SE_FU_ZAKU,
|
||||
/*0x26*/ SE_FU_ZAKU2,
|
||||
/*0x27*/ SE_FU_ZUZUZU,
|
||||
/*0x28*/ SE_RU_GASHIN,
|
||||
/*0x29*/ SE_RU_GASYAN,
|
||||
/*0x2A*/ SE_RU_BARI,
|
||||
/*0x2B*/ SE_RU_HYUU,
|
||||
/*0x2C*/ SE_KI_GASYAN,
|
||||
/*0x2D*/ SE_TK_WARPIN,
|
||||
/*0x2E*/ SE_TK_WARPOUT,
|
||||
/*0x2F*/ SE_TU_SAA,
|
||||
/*0x30*/ SE_HI_TURUN,
|
||||
/*0x31*/ SE_TRACK_MOVE,
|
||||
/*0x32*/ SE_TRACK_STOP,
|
||||
/*0x33*/ SE_TRACK_HAIK,
|
||||
/*0x34*/ SE_TRACK_DOOR,
|
||||
/*0x35*/ SE_MOTER,
|
||||
/*0x36*/ SE_CARD,
|
||||
/*0x37*/ SE_SAVE,
|
||||
/*0x38*/ SE_KON,
|
||||
/*0x39*/ SE_KON2,
|
||||
/*0x3A*/ SE_KON3,
|
||||
/*0x3B*/ SE_KON4,
|
||||
/*0x3C*/ SE_SUIKOMU,
|
||||
/*0x3D*/ SE_NAGERU,
|
||||
SE_TOY_C,
|
||||
SE_TOY_D,
|
||||
SE_TOY_E,
|
||||
SE_TOY_F,
|
||||
SE_TOY_G,
|
||||
SE_TOY_A,
|
||||
SE_TOY_B,
|
||||
SE_TOY_C1,
|
||||
SE_MIZU,
|
||||
SE_HASHI,
|
||||
SE_DAUGI,
|
||||
SE_PINPON,
|
||||
SE_FUUSEN1,
|
||||
SE_FUUSEN2,
|
||||
SE_FUUSEN3,
|
||||
SE_TOY_KABE,
|
||||
SE_TOY_DANGO,
|
||||
SE_DOKU,
|
||||
SE_ESUKA,
|
||||
SE_T_AME,
|
||||
SE_T_AME_E,
|
||||
SE_T_OOAME,
|
||||
SE_T_OOAME_E,
|
||||
SE_T_KOAME,
|
||||
SE_T_KOAME_E,
|
||||
SE_T_KAMI,
|
||||
SE_T_KAMI2,
|
||||
SE_ELEBETA,
|
||||
/*0x5A*/ SE_HINSI,
|
||||
/*0x5B*/ SE_EXPMAX,
|
||||
/*0x5C*/ SE_TAMAKORO,
|
||||
/*0x5D*/ SE_TAMAKORO_E,
|
||||
/*0x5E*/ SE_BASABASA,
|
||||
/*0x5F*/ SE_REGI,
|
||||
SE_C_GAJI,
|
||||
SE_C_MAKU_U,
|
||||
SE_C_MAKU_D,
|
||||
SE_C_PASI,
|
||||
SE_C_SYU,
|
||||
SE_C_PIKON,
|
||||
/*0x66*/ SE_REAPOKE,
|
||||
/*0x67*/ SE_OP_BASYU,
|
||||
/*0x68*/ SE_BT_START,
|
||||
SE_DENDOU,
|
||||
SE_JIHANKI,
|
||||
SE_TAMA,
|
||||
SE_Z_SCROLL,
|
||||
/*0x6D*/ SE_Z_PAGE,
|
||||
/*0x6E*/ SE_PN_ON,
|
||||
/*0x6F*/ SE_PN_OFF,
|
||||
/*0x70*/ SE_Z_SEARCH,
|
||||
/*0x71*/ SE_TAMAGO,
|
||||
/*0x72*/ SE_TB_START,
|
||||
/*0x73*/ SE_TB_KON,
|
||||
/*0x74*/ SE_TB_KARA,
|
||||
/*0x75*/ SE_BIDORO,
|
||||
/*0x76*/ SE_W085,
|
||||
/*0x77*/ SE_W085B,
|
||||
/*0x78*/ SE_W231,
|
||||
/*0x79*/ SE_W171,
|
||||
/*0x7A*/ SE_W233,
|
||||
/*0x7B*/ SE_W233B,
|
||||
/*0x7C*/ SE_W145,
|
||||
/*0x7D*/ SE_W145B,
|
||||
/*0x7E*/ SE_W145C,
|
||||
/*0x7F*/ SE_W240,
|
||||
/*0x80*/ SE_W015,
|
||||
/*0x81*/ SE_W081,
|
||||
/*0x82*/ SE_W081B,
|
||||
/*0x83*/ SE_W088,
|
||||
/*0x84*/ SE_W016,
|
||||
/*0x85*/ SE_W016B,
|
||||
/*0x86*/ SE_W003,
|
||||
/*0x87*/ SE_W104,
|
||||
/*0x88*/ SE_W013,
|
||||
/*0x89*/ SE_W196,
|
||||
/*0x8A*/ SE_W086,
|
||||
/*0x8B*/ SE_W004,
|
||||
/*0x8C*/ SE_W025,
|
||||
/*0x8D*/ SE_W025B,
|
||||
SE_W152,
|
||||
SE_W026,
|
||||
SE_W172,
|
||||
SE_W172B,
|
||||
SE_W053,
|
||||
SE_W007,
|
||||
SE_W092,
|
||||
SE_W221,
|
||||
SE_W221B,
|
||||
SE_W052,
|
||||
SE_W036,
|
||||
SE_W059,
|
||||
SE_W059B,
|
||||
SE_W010,
|
||||
SE_W011,
|
||||
SE_W017,
|
||||
SE_W019,
|
||||
SE_W028,
|
||||
SE_W013B,
|
||||
SE_W044,
|
||||
SE_W029,
|
||||
SE_W057,
|
||||
SE_W056,
|
||||
SE_W250,
|
||||
SE_W030,
|
||||
SE_W039,
|
||||
SE_W054,
|
||||
SE_W077,
|
||||
SE_W020,
|
||||
SE_W082,
|
||||
SE_W047,
|
||||
SE_W195,
|
||||
SE_W006,
|
||||
SE_W091,
|
||||
SE_W146,
|
||||
SE_W120,
|
||||
SE_W153,
|
||||
SE_W071B,
|
||||
SE_W071,
|
||||
SE_W103,
|
||||
/*0xB6*/ SE_W062,
|
||||
/*0xB7*/ SE_W062B,
|
||||
/*0xB8*/ SE_W048,
|
||||
/*0xB9*/ SE_W187,
|
||||
/*0xBA*/ SE_W118,
|
||||
/*0xBB*/ SE_W155,
|
||||
/*0xBC*/ SE_W122,
|
||||
/*0xBD*/ SE_W060,
|
||||
/*0xBE*/ SE_W185,
|
||||
/*0xBF*/ SE_W014,
|
||||
/*0xC0*/ SE_W043,
|
||||
/*0xC1*/ SE_W207,
|
||||
/*0xC2*/ SE_W207B,
|
||||
/*0xC3*/ SE_W215,
|
||||
/*0xC4*/ SE_W109,
|
||||
/*0xC5*/ SE_W173,
|
||||
/*0xC6*/ SE_W280,
|
||||
/*0xC7*/ SE_W202,
|
||||
/*0xC8*/ SE_W060B,
|
||||
/*0xC9*/ SE_W076,
|
||||
/*0xCA*/ SE_W080,
|
||||
/*0xCB*/ SE_W100,
|
||||
/*0xCC*/ SE_W107,
|
||||
SE_W166,
|
||||
SE_W129,
|
||||
SE_W115,
|
||||
SE_W112,
|
||||
SE_W197,
|
||||
SE_W199,
|
||||
SE_W236,
|
||||
SE_W204,
|
||||
SE_W268,
|
||||
SE_W070,
|
||||
SE_W063,
|
||||
SE_W127,
|
||||
SE_W179,
|
||||
SE_W151,
|
||||
SE_W201,
|
||||
SE_W161,
|
||||
SE_W161B,
|
||||
SE_W227,
|
||||
SE_W227B,
|
||||
SE_W226,
|
||||
SE_W208,
|
||||
SE_W213,
|
||||
SE_W213B,
|
||||
SE_W234,
|
||||
SE_W260,
|
||||
SE_W328,
|
||||
SE_W320,
|
||||
SE_W255,
|
||||
SE_W291,
|
||||
SE_W089,
|
||||
SE_W239,
|
||||
SE_W230,
|
||||
SE_W281,
|
||||
SE_W327,
|
||||
SE_W287,
|
||||
SE_W257,
|
||||
SE_W253,
|
||||
SE_W258,
|
||||
SE_W322,
|
||||
SE_W298,
|
||||
SE_W287B,
|
||||
SE_W114,
|
||||
SE_W063B,
|
||||
BGM_STOP = 349,
|
||||
/*0x15E*/ BGM_TETSUJI,
|
||||
/*0x15F*/ BGM_FIELD13,
|
||||
/*0x160*/ BGM_KACHI22,
|
||||
/*0x161*/ BGM_KACHI2,
|
||||
/*0x162*/ BGM_KACHI3,
|
||||
/*0x163*/ BGM_KACHI5,
|
||||
/*0x164*/ BGM_PCC,
|
||||
/*0x165*/ BGM_NIBI,
|
||||
/*0x166*/ BGM_SUIKUN,
|
||||
/*0x167*/ BGM_DOORO1,
|
||||
/*0x168*/ BGM_DOORO_X1,
|
||||
/*0x169*/ BGM_DOORO_X3,
|
||||
/*0x16A*/ BGM_MACHI_S2,
|
||||
/*0x16B*/ BGM_MACHI_S4,
|
||||
/*0x16C*/ BGM_GIM,
|
||||
/*0x16D*/ BGM_NAMINORI,
|
||||
/*0x16E*/ BGM_DAN01,
|
||||
/*0x16F*/ BGM_FANFA1,
|
||||
/*0x170*/ BGM_ME_ASA,
|
||||
/*0x171*/ BGM_ME_BACHI,
|
||||
/*0x172*/ BGM_FANFA4,
|
||||
/*0x173*/ BGM_FANFA5,
|
||||
/*0x174*/ BGM_ME_WAZA,
|
||||
/*0x175*/ BGM_BIJYUTU,
|
||||
/*0x176*/ BGM_DOORO_X4,
|
||||
/*0x177*/ BGM_FUNE_KAN,
|
||||
/*0x178*/ BGM_ME_SHINKA,
|
||||
/*0x179*/ BGM_SHINKA,
|
||||
/*0x17A*/ BGM_ME_WASURE,
|
||||
/*0x17B*/ BGM_SYOUJOEYE,
|
||||
/*0x17C*/ BGM_BOYEYE,
|
||||
/*0x17D*/ BGM_DAN02,
|
||||
/*0x17E*/ BGM_MACHI_S3,
|
||||
/*0x17F*/ BGM_ODAMAKI,
|
||||
/*0x180*/ BGM_B_TOWER,
|
||||
/*0x181*/ BGM_SWIMEYE,
|
||||
/*0x182*/ BGM_DAN03,
|
||||
/*0x183*/ BGM_ME_KINOMI,
|
||||
/*0x184*/ BGM_ME_TAMA,
|
||||
/*0x185*/ BGM_ME_B_BIG,
|
||||
/*0x186*/ BGM_ME_B_SMALL,
|
||||
/*0x187*/ BGM_ME_ZANNEN,
|
||||
/*0x188*/ BGM_BD_TIME,
|
||||
/*0x189*/ BGM_TEST1,
|
||||
/*0x18A*/ BGM_TEST2,
|
||||
/*0x18B*/ BGM_TEST3,
|
||||
/*0x18C*/ BGM_TEST4,
|
||||
/*0x18D*/ BGM_TEST,
|
||||
/*0x18E*/ BGM_GOMACHI0,
|
||||
/*0x18F*/ BGM_GOTOWN,
|
||||
/*0x190*/ BGM_POKECEN,
|
||||
/*0x191*/ BGM_NEXTROAD,
|
||||
/*0x192*/ BGM_GRANROAD,
|
||||
/*0x193*/ BGM_CYCLING,
|
||||
/*0x194*/ BGM_FRIENDLY,
|
||||
/*0x195*/ BGM_MISHIRO,
|
||||
/*0x196*/ BGM_TOZAN,
|
||||
/*0x197*/ BGM_GIRLEYE,
|
||||
/*0x198*/ BGM_MINAMO,
|
||||
/*0x199*/ BGM_ASHROAD,
|
||||
/*0x19A*/ BGM_EVENT0,
|
||||
/*0x19B*/ BGM_DEEPDEEP,
|
||||
/*0x19C*/ BGM_KACHI1,
|
||||
/*0x19D*/ BGM_TITLE3,
|
||||
/*0x19E*/ BGM_DEMO1,
|
||||
/*0x19F*/ BGM_GIRL_SUP,
|
||||
/*0x1A0*/ BGM_HAGESHII,
|
||||
/*0x1A1*/ BGM_KAKKOII,
|
||||
/*0x1A2*/ BGM_KAZANBAI,
|
||||
/*0x1A3*/ BGM_AQA_0,
|
||||
/*0x1A4*/ BGM_TSURETEK,
|
||||
/*0x1A5*/ BGM_BOY_SUP,
|
||||
/*0x1A6*/ BGM_RAINBOW,
|
||||
/*0x1A7*/ BGM_AYASII,
|
||||
/*0x1A8*/ BGM_KACHI4,
|
||||
/*0x1A9*/ BGM_ROPEWAY,
|
||||
/*0x1AA*/ BGM_CASINO,
|
||||
/*0x1AB*/ BGM_HIGHTOWN,
|
||||
/*0x1AC*/ BGM_SAFARI,
|
||||
BGM_C_ROAD,
|
||||
BGM_AJITO,
|
||||
BGM_M_BOAT,
|
||||
BGM_M_DUNGON,
|
||||
BGM_FINECITY,
|
||||
BGM_MACHUPI,
|
||||
BGM_P_SCHOOL,
|
||||
BGM_DENDOU,
|
||||
BGM_TONEKUSA,
|
||||
BGM_MABOROSI,
|
||||
BGM_CON_FAN,
|
||||
BGM_CONTEST0,
|
||||
BGM_MGM0,
|
||||
BGM_T_BATTLE,
|
||||
BGM_OOAME,
|
||||
BGM_HIDERI,
|
||||
BGM_RUNECITY,
|
||||
BGM_CON_K,
|
||||
BGM_EIKOU_R,
|
||||
BGM_KARAKURI,
|
||||
BGM_HUTAGO,
|
||||
BGM_SITENNOU,
|
||||
BGM_YAMA_EYE,
|
||||
BGM_CONLOBBY,
|
||||
BGM_INTER_V,
|
||||
BGM_DAIGO,
|
||||
BGM_THANKFOR,
|
||||
BGM_END,
|
||||
/*0x1C9*/ BGM_BATTLE_FRONTIER, // human-readable names start here because we don't know the actual filenames
|
||||
BGM_BATTLE_ARENA,
|
||||
BGM_ME_BATTLE_POINTS, // ME_ as in messagebox? Used for KINOMI (berries) and stuff above
|
||||
BGM_ME_MATCH_CALL,
|
||||
BGM_BATTLE_PYRAMID,
|
||||
BGM_BATTLE_PYRAMID_SUMMIT,
|
||||
BGM_BATTLE_PALACE,
|
||||
BGM_FANFA_RAYQUAZA,
|
||||
BGM_BATTLE_TOWER,
|
||||
BGM_ME_BATTLE_SYMBOL,
|
||||
BGM_BATTLE_DOME_TOURNAMENT,
|
||||
BGM_BATTLE_PIKE,
|
||||
BGM_BATTLE_FACTORY,
|
||||
BGM_BATTLE_LEGENDARY,
|
||||
BGM_BATTLE_FRONTIER_BRAIN,
|
||||
BGM_BATTLE_MEW,
|
||||
BGM_BATTLE_DOME, // end of the human-readable names
|
||||
/*0x1DA*/ BGM_BATTLE27, // wild
|
||||
BGM_BATTLE31, // aqua/magma grunt
|
||||
BGM_BATTLE20, // trainer
|
||||
BGM_BATTLE32, // gym leader
|
||||
BGM_BATTLE33, // champion
|
||||
BGM_BATTLE36, // regi
|
||||
BGM_BATTLE34, // weather trio
|
||||
BGM_BATTLE35, // rival
|
||||
BGM_BATTLE38, // elite four
|
||||
BGM_BATTLE30, // aqua/magma leader
|
||||
/*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again!
|
||||
BGM_FRLG_GAMECORNER,
|
||||
BGM_FRLG_ROCKET_HIDEOUT,
|
||||
BGM_FRLG_GYM,
|
||||
BGM_FRLG_JIGGLYPUFF,
|
||||
BGM_FRLG_OPENING,
|
||||
BGM_FRLG_TITLE,
|
||||
BGM_FRLG_CINNABAR_ISLAND,
|
||||
BGM_FRLG_LAVENDER_TOWN,
|
||||
BGM_FRLG_HEALING_TEST,
|
||||
BGM_FRLG_BICYCLE,
|
||||
BGM_FRLG_SUSPICIOUS_EYE,
|
||||
BGM_FRLG_GIRL_EYE,
|
||||
BGM_FRLG_BOY_EYE,
|
||||
BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME,
|
||||
BGM_FRLG_VIRIDIAN_FOREST,
|
||||
BGM_FRLG_MT_MOON,
|
||||
BGM_FRLG_POKEMON_MANSION,
|
||||
BGM_FRLG_CREDITS,
|
||||
BGM_FRLG_ROUTE_1,
|
||||
BGM_FRLG_ROUTE_24,
|
||||
BGM_FRLG_ROUTE_3,
|
||||
BGM_FRLG_ROUTE_11,
|
||||
BGM_FRLG_INDIGO_PLATEAU,
|
||||
BGM_FRLG_BATTLE_LEADER,
|
||||
BGM_FRLG_BATTLE_TRAINER,
|
||||
BGM_FRLG_BATTLE_WILD_POKEMON,
|
||||
BGM_FRLG_BATTLE_CHAMPION,
|
||||
BGM_FRLG_PALLET_TOWN,
|
||||
BGM_FRLG_OAK_LAB,
|
||||
BGM_FRLG_PROF_OAK,
|
||||
BGM_FRLG_POKEMON_CENTER,
|
||||
BGM_FRLG_SS_ANNE,
|
||||
BGM_FRLG_SURF,
|
||||
BGM_FRLG_POKEMON_TOWER,
|
||||
BGM_FRLG_SILPH,
|
||||
BGM_FRLG_CERULEAN_CITY,
|
||||
BGM_FRLG_CELADON_CITY,
|
||||
BGM_FRLG_KACHI_TRAINER, // KACHI used in RS test - victory
|
||||
BGM_FRLG_KACHI_WILD_POKEMON,
|
||||
BGM_FRLG_KACHI_LEADER,
|
||||
BGM_FRLG_VERMILION_CITY,
|
||||
BGM_FRLG_VIRIDIAN_CITY,
|
||||
BGM_FRLG_RIVAL,
|
||||
BGM_FRLG_RIVAL_POSTBATTLE,
|
||||
BGM_FRLG_ME_POKEDEX_EVAL,
|
||||
BGM_FRLG_ME_KEYITEM,
|
||||
BGM_FRLG_FANFA_POKEMON_CAUGHT,
|
||||
BGM_FRLG_FANFA_TRAINERCARD_PHOTO,
|
||||
BGM_FRLG_GAMEFREAK_LOGO,
|
||||
BGM_FRLG_CAUGHT_POKEMON,
|
||||
BGM_FRLG_GAME_EXPLANATION_START,
|
||||
BGM_FRLG_GAME_EXPLANATION_MIDDLE,
|
||||
BGM_FRLG_GAME_EXPLANATION_END,
|
||||
BGM_FRLG_POKEMON_JUMP,
|
||||
BGM_FRLG_UNION_ROOM,
|
||||
BGM_FRLG_POKEMON_NETWORK_CENTER,
|
||||
BGM_FRLG_MYSTERY_GIFT,
|
||||
BGM_FRLG_DODRIO_BERRY_PICK,
|
||||
BGM_FRLG_MT_EMBER,
|
||||
BGM_FRLG_TEACHY_TV_EPISODE,
|
||||
BGM_FRLG_SEVII_ISLANDS,
|
||||
BGM_FRLG_TANOBY_RUINS,
|
||||
BGM_FRLG_ISLAND_ONE,
|
||||
BGM_FRLG_ISLAND_FOUR,
|
||||
BGM_FRLG_ISLAND_SIX,
|
||||
BGM_FRLG_FLUTE,
|
||||
BGM_FRLG_BATTLE_DEOXYS,
|
||||
BGM_FRLG_BATTLE_MEWTWO,
|
||||
BGM_FRLG_BATTLE_LEGENDARY,
|
||||
BGM_FRLG_LEADER_EYE,
|
||||
BGM_FRLG_DEOXYS_EYE,
|
||||
BGM_FRLG_TRAINER_TOWER,
|
||||
BGM_FRLG_HALL_OF_FAME_PALLET_TOWN,
|
||||
/*0x22E*/BGM_FRLG_TEACHY_TV,
|
||||
};
|
||||
|
||||
#endif // GUARD_SONGS_H
|
||||
@@ -237,6 +237,7 @@ SECTIONS {
|
||||
asm/berry_pouch.o(.text);
|
||||
asm/itemfinder.o(.text);
|
||||
asm/buy_menu_helpers.o(.text);
|
||||
src/slot_machine.o(.text);
|
||||
asm/slot_machine.o(.text);
|
||||
src/roamer.o(.text);
|
||||
src/mystery_gift_menu.o(.text);
|
||||
|
||||
@@ -0,0 +1,267 @@
|
||||
#include "global.h"
|
||||
#include "palette.h"
|
||||
#include "task.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "sound.h"
|
||||
#include "coins.h"
|
||||
#include "quest_log.h"
|
||||
#include "overworld.h"
|
||||
#include "slot_machine.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
struct SlotMachineState
|
||||
{
|
||||
MainCallback savedCallback;
|
||||
u16 machineidx;
|
||||
u16 field_06;
|
||||
u8 filler_08[2];
|
||||
u16 field_0A;
|
||||
u8 filler_0C[2];
|
||||
u16 bet;
|
||||
u8 field_10;
|
||||
u8 field_11;
|
||||
TaskFunc field_14[3];
|
||||
u16 field_20[3];
|
||||
u16 field_26[3];
|
||||
u16 field_2C[3];
|
||||
u8 filler_32[0x1E];
|
||||
u16 field_50;
|
||||
};
|
||||
|
||||
EWRAM_DATA struct SlotMachineState * gUnknown_203F3A0 = NULL;
|
||||
|
||||
void sub_813F84C(struct SlotMachineState * ptr);
|
||||
void sub_813F898(void);
|
||||
void sub_813F92C(void);
|
||||
void sub_813F94C(void);
|
||||
void sub_813F964(u8 taskId);
|
||||
void sub_813FBC0(u8 taskId);
|
||||
void sub_813FC2C(u8 taskId);
|
||||
void sub_813FCAC(u8 taskId);
|
||||
void sub_813FD84(u8 taskId);
|
||||
void sub_813FE1C(u8 taskId);
|
||||
void sub_813FFD8(u8 taskId);
|
||||
void sub_8140030(TaskFunc taskFunc);
|
||||
void sub_8140060(u8 taskId);
|
||||
void sub_8140148(void);
|
||||
void sub_814016C(u16, u16);
|
||||
bool32 sub_81401A0(u16);
|
||||
void sub_81409B4(void);
|
||||
void sub_8140A70(void);
|
||||
u16 sub_8140A80(void);
|
||||
bool32 sub_814104C(void);
|
||||
void sub_8141094(void);
|
||||
void sub_8141148(u16 a0, u8 a1);
|
||||
bool32 sub_8141180(u8 a0);
|
||||
void sub_8141C30(u8, u8);
|
||||
|
||||
void PlaySlotMachine(u16 machineIdx, MainCallback savedCallback)
|
||||
{
|
||||
ResetTasks();
|
||||
gUnknown_203F3A0 = Alloc(sizeof(*gUnknown_203F3A0));
|
||||
if (gUnknown_203F3A0 == NULL)
|
||||
SetMainCallback2(savedCallback);
|
||||
else
|
||||
{
|
||||
if (machineIdx > 5)
|
||||
machineIdx = 0;
|
||||
gUnknown_203F3A0->machineidx = machineIdx;
|
||||
gUnknown_203F3A0->savedCallback = savedCallback;
|
||||
sub_813F84C(gUnknown_203F3A0);
|
||||
SetMainCallback2(sub_813F898);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_813F84C(struct SlotMachineState * ptr)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
ptr->field_06 = 0;
|
||||
ptr->bet = 0;
|
||||
ptr->field_50 = 0;
|
||||
// for whatever reason, the loop does not use the ptr param
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
gUnknown_203F3A0->field_14[i] = NULL;
|
||||
gUnknown_203F3A0->field_20[i] = 0;
|
||||
gUnknown_203F3A0->field_26[i] = 0;
|
||||
gUnknown_203F3A0->field_2C[i] = 21;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_813F898(void)
|
||||
{
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
if (sub_814104C())
|
||||
{
|
||||
SetMainCallback2(gUnknown_203F3A0->savedCallback);
|
||||
sub_813F92C();
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8141148(0, 0);
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (sub_8141180(0) == 0)
|
||||
{
|
||||
gUnknown_203F3A0->field_10 = CreateTask(sub_813F964, 0);
|
||||
gUnknown_203F3A0->field_11 = CreateTask(sub_8140060, 1);
|
||||
SetMainCallback2(sub_813F94C);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_813F92C(void)
|
||||
{
|
||||
sub_8141094();
|
||||
if (gUnknown_203F3A0 != NULL)
|
||||
{
|
||||
Free(gUnknown_203F3A0);
|
||||
gUnknown_203F3A0 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_813F94C(void)
|
||||
{
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
void sub_813F964(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
if (GetCoins() == 0)
|
||||
{
|
||||
sub_8140030(sub_813FBC0);
|
||||
}
|
||||
else if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gUnknown_203F3A0->bet++;
|
||||
TakeCoins(1);
|
||||
PlaySE(SE_T_KAMI2);
|
||||
sub_8141148(8, 0);
|
||||
sub_8141148(2, 1);
|
||||
data[0] = 1;
|
||||
}
|
||||
else if (JOY_NEW(R_BUTTON))
|
||||
{
|
||||
s32 toAdd = 3 - gUnknown_203F3A0->bet;
|
||||
if (GetCoins() >= toAdd)
|
||||
{
|
||||
gUnknown_203F3A0->bet = 3;
|
||||
TakeCoins(toAdd);
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203F3A0->bet += GetCoins();
|
||||
SetCoins(0);
|
||||
}
|
||||
PlaySE(SE_T_KAMI2);
|
||||
sub_8141148(8, 0);
|
||||
sub_8141148(2, 1);
|
||||
data[0] = 1;
|
||||
}
|
||||
else if (JOY_NEW(A_BUTTON) && gUnknown_203F3A0->bet != 0)
|
||||
{
|
||||
data[0] = 2;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
sub_8140030(sub_813FCAC);
|
||||
}
|
||||
else if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
sub_8140030(sub_813FC2C);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (sub_8141180(0) == 0 && sub_8141180(1) == 0)
|
||||
{
|
||||
if (gUnknown_203F3A0->bet == 3 || GetCoins() == 0)
|
||||
data[0] = 2;
|
||||
else
|
||||
data[0] = 0;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
sub_811539C();
|
||||
sub_81409B4();
|
||||
sub_8140148();
|
||||
gUnknown_203F3A0->field_06 = 0;
|
||||
sub_8141148(3, 0);
|
||||
data[0] = 3;
|
||||
break;
|
||||
case 3:
|
||||
if (sub_8141180(0) == 0)
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
PlaySE(SE_JYUNI);
|
||||
sub_814016C(gUnknown_203F3A0->field_06, gUnknown_203F3A0->field_06);
|
||||
sub_8141C30(gUnknown_203F3A0->field_06, 0);
|
||||
data[0] = 4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (sub_81401A0(gUnknown_203F3A0->field_06) == 0 && sub_8141180(0) == 0)
|
||||
{
|
||||
gUnknown_203F3A0->field_06++;
|
||||
if (gUnknown_203F3A0->field_06 >= 3)
|
||||
{
|
||||
gUnknown_203F3A0->field_0A = sub_8140A80();
|
||||
gUnknown_203F3A0->bet = 0;
|
||||
gUnknown_203F3A0->field_06 = 0;
|
||||
if (gUnknown_203F3A0->field_0A == 0)
|
||||
sub_8140030(sub_813FD84);
|
||||
else
|
||||
{
|
||||
if (gUnknown_203F3A0->field_0A == 6)
|
||||
IncrementGameStat(GAME_STAT_SLOT_JACKPOTS);
|
||||
sub_8140A70();
|
||||
sub_8140030(sub_813FE1C);
|
||||
}
|
||||
}
|
||||
else
|
||||
data[0] = 3;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_813FBC0(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
sub_8141148(9, 0);
|
||||
data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
if (sub_8141180(0) == 0)
|
||||
data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY))
|
||||
sub_8140030(sub_813FFD8);
|
||||
break;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "songs.h"
|
||||
#include "constants/songs.h"
|
||||
#include "sound.h"
|
||||
#include "task.h"
|
||||
#include "malloc.h"
|
||||
|
||||
Reference in New Issue
Block a user