mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
Resolved conflics with master
This commit is contained in:
commit
c7088b1de9
26
.github/calcrom/calcrom.pl
vendored
26
.github/calcrom/calcrom.pl
vendored
|
|
@ -162,28 +162,14 @@ my $incbin_bytes_as_string;
|
|||
# to convert to a number becomes 0. So if our converted number is 0, but our string
|
||||
# is nonzero, then the conversion was an error.
|
||||
my $undocumented = $undocumented_as_string + 0;
|
||||
(($undocumented != 0) and ($undocumented_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$undocumented_as_string'";
|
||||
|
||||
my $partial_documented = $partial_documented_as_string + 0;
|
||||
(($partial_documented != 0) and ($partial_documented_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$partial_documented_as_string'";
|
||||
|
||||
my $total_syms = $total_syms_as_string + 0;
|
||||
(($total_syms != 0) and ($total_syms_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$total_syms_as_string'";
|
||||
|
||||
($total_syms != 0)
|
||||
or die "ERROR: No symbols found.";
|
||||
|
||||
my $incbin_count = $incbin_count_as_string + 0;
|
||||
(($incbin_count != 0) and ($incbin_count_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$incbin_count_as_string'";
|
||||
|
||||
my $incbin_bytes = $incbin_bytes_as_string + 0;
|
||||
(($incbin_bytes != 0) and ($incbin_bytes_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$incbin_bytes_as_string'";
|
||||
|
||||
|
||||
my $functions_remaining_cmd = "git grep 'thumb_func_start' ':/asm/**.s'";
|
||||
my $functions_remaining_as_string;
|
||||
|
|
@ -193,9 +179,8 @@ my $functions_remaining_as_string;
|
|||
timeout => 60
|
||||
))
|
||||
or die "ERROR: Error while calculating TODO totals: $?";
|
||||
|
||||
my $functions_remaining_count = $functions_remaining_as_string + 0;
|
||||
(($functions_remaining_count != 0) and ($functions_remaining_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$functions_remaining_as_string'";
|
||||
|
||||
my $nonmatching_cmd = "git grep -E 'asm_unified' ':/' ':(exclude)*.pl' ':(exclude)include/global.h'";
|
||||
my $nonmatching_as_string;
|
||||
|
|
@ -205,9 +190,8 @@ my $nonmatching_as_string;
|
|||
timeout => 60
|
||||
))
|
||||
or die "ERROR: Error while calculating asm_unified totals: $?";
|
||||
|
||||
my $nonmatching_count = $nonmatching_as_string + 0;
|
||||
(($nonmatching_count != 0) and ($nonmatching_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$nonmatching_as_string'";
|
||||
|
||||
my $expected_objs_cmd = "ls -1 expected_objs/";
|
||||
my $expected_objs_as_string;
|
||||
|
|
@ -217,9 +201,8 @@ my $expected_objs_as_string;
|
|||
timeout => 60
|
||||
))
|
||||
or die "ERROR: Error while calculating asm_unified totals: $?";
|
||||
|
||||
my $expected_objs_count = $expected_objs_as_string + 0;
|
||||
(($expected_objs_count != 0) and ($expected_objs_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$expected_objs_as_string'";
|
||||
|
||||
|
||||
|
||||
|
|
@ -314,9 +297,6 @@ if ($verbose != 0)
|
|||
))
|
||||
or die "ERROR: Error while calculating TODO totals: $?";
|
||||
my $todo_count = $todo_as_string + 0;
|
||||
(($todo_count != 0) and ($todo_as_string ne "0"))
|
||||
or die "ERROR: Cannot convert string to num: '$todo_as_string'";
|
||||
|
||||
print "\n";
|
||||
printf "%8d comments are labeled TODO\n", $todo_count;
|
||||
}
|
||||
|
|
|
|||
1344
asm/rom_203CC.s
1344
asm/rom_203CC.s
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -461,7 +461,7 @@ extern void sub_1F59C();
|
|||
//extern ? sub_1FF0C();
|
||||
//extern ? sub_201B8();
|
||||
extern void sub_203CC();
|
||||
//extern ? sub_20EC0();
|
||||
extern void sub_20EC0();
|
||||
extern void sub_21238(s16);
|
||||
//extern ? sub_21300();
|
||||
//extern ? sub_21320();
|
||||
|
|
|
|||
|
|
@ -99,16 +99,18 @@ struct BallState
|
|||
/*0x3C*/ struct Vector32 prevPositionQ8;
|
||||
};
|
||||
|
||||
struct UnkPinballGame13BC
|
||||
// Position rises in steps of 2 from 0 to 10.
|
||||
// Releasing the button continues rising till it reaches 10, and stalls for 3 frames before falling
|
||||
struct FlipperState
|
||||
{
|
||||
/*0x00*/ s8 unk0;
|
||||
/*0x01*/ s8 unk1;
|
||||
/*0x00*/ s8 position;
|
||||
/*0x01*/ s8 prevPosition;
|
||||
/*0x02*/ s8 unk2;
|
||||
/*0x03*/ s8 unk3;
|
||||
/*0x04*/ s8 unk4;
|
||||
/*0x05*/ s8 unk5;
|
||||
/*0x06*/ s8 unk6;
|
||||
/*0x07*/ u8 unk7;
|
||||
/*0x06*/ s8 active;
|
||||
/*0x07*/ u8 stallTicks;
|
||||
/*0x08*/ s8 unk8;
|
||||
/*0x09*/ u8 filler9[0x3];
|
||||
};
|
||||
|
|
@ -139,7 +141,7 @@ struct PinballGame
|
|||
/*0x025*/ s8 unk25;
|
||||
/*0x026*/ u16 unk26;
|
||||
/*0x028*/ u16 unk28;
|
||||
/*0x02A*/ u8 filler2A[0x2];
|
||||
/*0x02A*/ u16 unk2A;
|
||||
/*0x02C*/ int unk2C;
|
||||
/*0x030*/ s8 numLives;
|
||||
/*0x031*/ u8 ballSpeed;
|
||||
|
|
@ -189,7 +191,7 @@ struct PinballGame
|
|||
/*0x0C8*/ u8 fillerC8[0x2];
|
||||
/*0x0CA*/ s16 unkCA;
|
||||
/*0x0CC*/ s16 unkCC;
|
||||
/*0x0CE*/ u8 fillerCE[0x2];
|
||||
/*0x0CE*/ u16 unkCE;
|
||||
/*0x0D0*/ struct Vector16 unkD0[5];
|
||||
/*0x0E4*/ u8 unkE4;
|
||||
/*0x0E6*/ s16 unkE6;
|
||||
|
|
@ -297,9 +299,10 @@ struct PinballGame
|
|||
/*0x1D8*/ u16 unk1D8;
|
||||
/*0x1DA*/ u16 unk1DA;
|
||||
/*0x1DC*/ u16 unk1DC;
|
||||
/*0x1DE*/ u8 filler1DE[0x4];
|
||||
/*0x1DE*/ u16 unk1DE;
|
||||
/*0x1E0*/ u16 unk1E0;
|
||||
/*0x1E2*/ s8 outLanePikaPosition; //Pikachu coverage. 0= left lane, 1=right lane, 2 = both
|
||||
/*0x1E3*/ u8 filler1E3[0x2];
|
||||
/*0x1E3*/ s8 unk1E3[2];
|
||||
/*0x1E5*/ s8 unk1E5;
|
||||
/*0x1E6*/ s8 unk1E6;
|
||||
/*0x1E7*/ u8 filler1E7[0x1];
|
||||
|
|
@ -322,7 +325,7 @@ struct PinballGame
|
|||
/*0x205*/ u8 filler205[0x1];
|
||||
/*0x206*/ u16 unk206;
|
||||
/*0x208*/ u16 unk208;
|
||||
/*0x20A*/ u8 unk20A;
|
||||
/*0x20A*/ s8 unk20A;
|
||||
/*0x20B*/ s8 unk20B;
|
||||
/*0x20C*/ s8 unk20C;
|
||||
/*0x20D*/ u8 filler20D[0x1];
|
||||
|
|
@ -711,7 +714,9 @@ struct PinballGame
|
|||
/*0x618*/ u16 unk618;
|
||||
/*0x61A*/ s16 unk61A;
|
||||
/*0x61C*/ s8 unk61C;
|
||||
/*0x61D*/ u8 filler61D[0x7];
|
||||
/*0x61D*/ u8 filler61D;
|
||||
/*0x61E*/ u16 unk61E;
|
||||
/*0x620*/ struct Vector16 unk620;
|
||||
/*0x624*/ s8 unk624;
|
||||
/*0x625*/ s8 unk625;
|
||||
/*0x626*/ s8 unk626;
|
||||
|
|
@ -854,7 +859,7 @@ struct PinballGame
|
|||
/*0x132C*/struct BallState *ball;
|
||||
/*0x1330*/struct BallState *unk1330;
|
||||
/*0x1334*/struct BallState unk1334[2];
|
||||
/*0x13BC*/struct UnkPinballGame13BC unk13BC[2];
|
||||
/*0x13BC*/struct FlipperState flipper[2];
|
||||
/*0x13D4*/u16 unk13D4[10];
|
||||
/*0x13E8*/struct Vector16 unk13E8[10];
|
||||
} /* size=0x1410 */;
|
||||
|
|
@ -973,15 +978,18 @@ extern u8 *gMonPortraitGroupGfx[];
|
|||
extern u8 *gMonPortraitGroupPals[];
|
||||
extern u8 gUnknown_02030760[];
|
||||
extern u8 gUnknown_02031060[];
|
||||
extern const u8 gUnknown_08395A4C[];
|
||||
extern const u8 gUnknown_08397E6C[];
|
||||
extern const u8 gUnknown_083A8EEC[][0x300];
|
||||
extern const u8 gUnknown_083BB16C[][0x80];
|
||||
extern const u8 gUnknown_083BD36C[][0x200];
|
||||
extern const u8 gUnknown_0844838C[][0x300];
|
||||
extern const u8 gUnknown_0848D68C[][0x300];
|
||||
extern const u8 gUnknown_084C00EC[][0x80];
|
||||
extern const s8 gUnknown_084C07EC[];
|
||||
extern const u8 gUnknown_084C07EC[];
|
||||
extern const u8 gUnknown_084FA48C[][0x120];
|
||||
extern const u8 gUnknown_084FD18C[][0x200];
|
||||
extern const u8 *gUnknown_086AD49C[];
|
||||
extern const u16 gUnknown_086AD2EE[][4];
|
||||
|
||||
#endif // GUARD_GLOBAL_H
|
||||
|
|
@ -46,15 +46,13 @@ SECTIONS
|
|||
src/board_process5.o(.text);
|
||||
src/board_process7.o(.text);
|
||||
src/board_process6.o(.text);
|
||||
src/rom_14740.o(.text);
|
||||
src/rom_17634.o(.text);
|
||||
src/rom_19028.o(.text);
|
||||
src/collision_checks.o(.text);
|
||||
src/game_idle.o(.text);
|
||||
src/board_process4.o(.text);
|
||||
src/board_process3_ruby.o(.text);
|
||||
src/rom_1A0F4.o(.text);
|
||||
src/rom_1A98C.o(.text);
|
||||
src/rom_201B8.o(.text);
|
||||
asm/rom_203CC.o(.text);
|
||||
src/rom_27E08.o(.text);
|
||||
src/rom_27F94.o(.text);
|
||||
src/rom_2C538.o(.text);
|
||||
|
|
|
|||
|
|
@ -307,7 +307,7 @@ void sub_4DFA0(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->newButtonActions[3] && gCurrentPinballGame->unk12A == 0)
|
||||
if (gCurrentPinballGame->newButtonActions[3] && gCurrentPinballGame->unk12A == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk129 = 1;
|
||||
if (gCurrentPinballGame->unk128 == 0)
|
||||
|
|
@ -581,7 +581,7 @@ void sub_4E598(void)
|
|||
gCurrentPinballGame->unk16F = 1;
|
||||
gCurrentPinballGame->unk174 = 0x40;
|
||||
gCurrentPinballGame->unk2AA = 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk300 = 0;
|
||||
|
|
|
|||
|
|
@ -364,7 +364,7 @@ void sub_336E0(void) {
|
|||
{
|
||||
gCurrentPinballGame->unk3B0[i] = 0; //Time since last decision
|
||||
gCurrentPinballGame->unk3A3[i]++; //Animation frame advance 'move left to neutral state'
|
||||
if (gCurrentPinballGame->unk3A3[i] > 6) //Animation frame at neutral forward, continue with move right
|
||||
if (gCurrentPinballGame->unk3A3[i] > 6) //Animation frame at neutral forward, continue with move right
|
||||
{
|
||||
gCurrentPinballGame->unk3A3[i] = 7;
|
||||
gCurrentPinballGame->unk3A0[i] = 3; //duskull lifecycle state. Move Right
|
||||
|
|
@ -374,7 +374,7 @@ void sub_336E0(void) {
|
|||
sp0 = gUnknown_086AE5EC[gCurrentPinballGame->unk3A3[i]][0];
|
||||
r7 = gUnknown_086AE5EC[gCurrentPinballGame->unk3A3[i]][2];
|
||||
break;
|
||||
case 3: //Move Right state
|
||||
case 3: //Move Right state
|
||||
gCurrentPinballGame->unk3B6[i]++; //Time Alive
|
||||
if (gCurrentPinballGame->unk3C4[i].x < 800) //Dusclops x pos
|
||||
{
|
||||
|
|
@ -387,7 +387,7 @@ void sub_336E0(void) {
|
|||
else
|
||||
{
|
||||
gCurrentPinballGame->unk3B0[i] = 0; //Time since last decision
|
||||
gCurrentPinballGame->unk3A3[i]++; //Animation frame advance
|
||||
gCurrentPinballGame->unk3A3[i]++; //Animation frame advance
|
||||
if (gCurrentPinballGame->unk3A3[i] > 10)
|
||||
gCurrentPinballGame->unk3A3[i] = 7;
|
||||
}
|
||||
|
|
@ -593,7 +593,7 @@ void sub_340EC() {
|
|||
}
|
||||
else
|
||||
{
|
||||
for (j = 0; j < 2; j++)
|
||||
for (j = 0; j < 2; j++)
|
||||
{
|
||||
oamData = &spriteGroup->oam[j];
|
||||
dst = (u16*)&gOamBuffer[oamData->oamId];
|
||||
|
|
@ -610,20 +610,20 @@ void sub_340EC() {
|
|||
}
|
||||
}
|
||||
|
||||
void sub_34450(void)
|
||||
{
|
||||
void sub_34450(void)
|
||||
{
|
||||
s16 r9;
|
||||
u16 available;
|
||||
struct OamDataSimple *oamSimple;
|
||||
struct SpriteGroup *spriteGroup;
|
||||
|
||||
|
||||
r9 = 0;
|
||||
spriteGroup = &gMain.spriteGroups[14];
|
||||
switch(gCurrentPinballGame->unk3DC)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
gCurrentPinballGame->unk3E8 = 880;
|
||||
gCurrentPinballGame->unk3E8 = 880;
|
||||
gCurrentPinballGame->unk3EA = 300;
|
||||
gCurrentPinballGame->unk3DC = 1;
|
||||
gCurrentPinballGame->unk3E6 = 184;
|
||||
|
|
@ -632,11 +632,11 @@ void sub_34450(void)
|
|||
gCurrentPinballGame->unk294 = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case 1:
|
||||
{
|
||||
if (gUnknown_086AE68E[gCurrentPinballGame->unk3E2][1] > gCurrentPinballGame->unk3E4)
|
||||
gCurrentPinballGame->unk3E4++;
|
||||
gCurrentPinballGame->unk3E4++;
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk3E4 = 0;
|
||||
|
|
@ -645,7 +645,7 @@ void sub_34450(void)
|
|||
if (gCurrentPinballGame->unk3E2 > 28)
|
||||
{
|
||||
gCurrentPinballGame->unk3E2 = 21;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E0 <= 0)
|
||||
gCurrentPinballGame->unk3E0++;
|
||||
else
|
||||
|
|
@ -654,15 +654,15 @@ void sub_34450(void)
|
|||
gCurrentPinballGame->unk3DC = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 23)
|
||||
{
|
||||
gCurrentPinballGame->unk129 = 0;
|
||||
gCurrentPinballGame->unk128 = 1;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xF4); //Dusclops entry; footstops
|
||||
sub_11B0(8);
|
||||
sub_11B0(8);
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 27)
|
||||
{
|
||||
gCurrentPinballGame->unk129 = 1;
|
||||
|
|
@ -672,8 +672,8 @@ void sub_34450(void)
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
r9 = 0;
|
||||
|
||||
r9 = 0;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
|
|
@ -682,12 +682,12 @@ void sub_34450(void)
|
|||
{
|
||||
r9 = gUnknown_08137D40[(gCurrentPinballGame->unk3E4 % 0x40) / 16];
|
||||
gCurrentPinballGame->unk3E4++;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E4 == 256)
|
||||
{
|
||||
gCurrentPinballGame->unk3DC = 3;
|
||||
gCurrentPinballGame->unk3E4 = 0;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E0 > 3)
|
||||
gCurrentPinballGame->unk3E0 = 0;
|
||||
if (gCurrentPinballGame->unk3E0 <= 1)
|
||||
|
|
@ -696,11 +696,11 @@ void sub_34450(void)
|
|||
gCurrentPinballGame->unk3E2 = 7;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E6 > 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk3E6 > 64)
|
||||
gCurrentPinballGame->unk3E6 -= 1;
|
||||
gCurrentPinballGame->unk3E6--;
|
||||
else
|
||||
gCurrentPinballGame->unk3E6 -= 2;
|
||||
|
||||
|
|
@ -712,16 +712,16 @@ void sub_34450(void)
|
|||
gCurrentPinballGame->unk387 = 2;
|
||||
gCurrentPinballGame->unk294 = 2;
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (gUnknown_086AE68E[gCurrentPinballGame->unk3E2][1] > gCurrentPinballGame->unk3E4)
|
||||
{
|
||||
gCurrentPinballGame->unk3E4++;
|
||||
{
|
||||
gCurrentPinballGame->unk3E4++;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk3E4 = 0;
|
||||
|
||||
|
|
@ -733,7 +733,7 @@ void sub_34450(void)
|
|||
{
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gCurrentPinballGame->unk3E0++;
|
||||
|
||||
|
||||
if ((gCurrentPinballGame->unk3E0 & 1) == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk3DC = 2;
|
||||
|
|
@ -742,9 +742,9 @@ void sub_34450(void)
|
|||
}
|
||||
}
|
||||
else if (--gCurrentPinballGame->unk3E2 < 0)
|
||||
{
|
||||
{
|
||||
gCurrentPinballGame->unk3E0++;
|
||||
|
||||
|
||||
if ((gCurrentPinballGame->unk3E0 & 1) == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk3DC = 2;
|
||||
|
|
@ -758,27 +758,27 @@ void sub_34450(void)
|
|||
if (gCurrentPinballGame->unk3E2 == 2)
|
||||
{
|
||||
gCurrentPinballGame->unk129 = 0;
|
||||
gCurrentPinballGame->unk128 = 1;
|
||||
gCurrentPinballGame->unk128 = 1;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xF4); //Dusclops entry; footstops
|
||||
sub_11B0(8);
|
||||
sub_11B0(8);
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 6)
|
||||
{
|
||||
gCurrentPinballGame->unk129 = 1;
|
||||
gCurrentPinballGame->unk128 = 1;
|
||||
gCurrentPinballGame->unk129 = 1;
|
||||
gCurrentPinballGame->unk128 = 1;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xF4); //Dusclops entry; footstops
|
||||
sub_11B0(8);
|
||||
}
|
||||
}
|
||||
|
||||
r9 = gUnknown_086AE68E[gCurrentPinballGame->unk3E2][0];
|
||||
|
||||
|
||||
if((gCurrentPinballGame->unk3E2 == 0) || (gCurrentPinballGame->unk3E2 == 4))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E0 <= 1)
|
||||
{
|
||||
if (gCurrentPinballGame->unk3EA <= 583)
|
||||
|
|
@ -789,7 +789,7 @@ void sub_34450(void)
|
|||
|
||||
if ((gCurrentPinballGame->unk3E2 % 4) != 0)
|
||||
break;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk3DC = 2;
|
||||
gCurrentPinballGame->unk3E4 = 0;
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
|
|
@ -802,15 +802,15 @@ void sub_34450(void)
|
|||
gCurrentPinballGame->unk3EA--;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if ((gCurrentPinballGame->unk3E2 % 4) != 0)
|
||||
break;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk3DC = 2;
|
||||
gCurrentPinballGame->unk3E4 = 0;
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gCurrentPinballGame->unk3E0 = 4;
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
|
|
@ -819,7 +819,7 @@ void sub_34450(void)
|
|||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gCurrentPinballGame->unk3DC = 5;
|
||||
r9 = 7;
|
||||
|
||||
|
||||
m4aSongNumStart(SE_UNKNOWN_0xF6); //Dusclops hit
|
||||
gCurrentPinballGame->unk387 = 0;
|
||||
sub_11B0(7);
|
||||
|
|
@ -847,7 +847,7 @@ void sub_34450(void)
|
|||
gCurrentPinballGame->unk3DC = 8;
|
||||
r9 = 7;
|
||||
}
|
||||
|
||||
|
||||
gCurrentPinballGame->unk385++;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 300000;
|
||||
|
||||
|
|
@ -856,24 +856,24 @@ void sub_34450(void)
|
|||
case 6:
|
||||
{
|
||||
struct Vector16 tempVector;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk3E2 = 9;
|
||||
gCurrentPinballGame->unk3E4 = 0;
|
||||
gCurrentPinballGame->unk3DC = 7;
|
||||
gCurrentPinballGame->unk5A6 = 0;
|
||||
r9 = 8;
|
||||
|
||||
|
||||
m4aSongNumStart(SE_UNKNOWN_0xF7); //Dusclops absorbs ball
|
||||
gCurrentPinballGame->unk288 = (gCurrentPinballGame->unk3E8 / 10) + 32;
|
||||
gCurrentPinballGame->unk28A = (gCurrentPinballGame->unk3EA / 10) + 36;
|
||||
|
||||
|
||||
tempVector.x = (gCurrentPinballGame->unk288 << 8) - gCurrentPinballGame->ball->positionQ8.x;
|
||||
tempVector.y = (gCurrentPinballGame->unk28A << 8) - gCurrentPinballGame->ball->positionQ8.y;
|
||||
|
||||
gCurrentPinballGame->unk5AC = (tempVector.x * tempVector.x) + (tempVector.y * tempVector.y);
|
||||
gCurrentPinballGame->unk5AC = Sqrt(gCurrentPinballGame->unk5AC * 4) / 2;
|
||||
gCurrentPinballGame->unk5B0 = ArcTan2(-tempVector.x, tempVector.y);
|
||||
|
||||
|
||||
sub_11B0(13);
|
||||
break;
|
||||
}
|
||||
|
|
@ -885,19 +885,19 @@ void sub_34450(void)
|
|||
{
|
||||
gCurrentPinballGame->unk3E4 = 0;
|
||||
gCurrentPinballGame->unk3E2++;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 15)
|
||||
{
|
||||
gCurrentPinballGame->ball->velocity.x = (gMain.systemFrameCount % 2 * 300) + 65386;
|
||||
gCurrentPinballGame->ball->velocity.x = (gMain.systemFrameCount % 2 * 300) + 65386;
|
||||
gCurrentPinballGame->ball->velocity.y = 300;
|
||||
gCurrentPinballGame->ball->unk0 = 0;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xF8); //Dusclops launch ball
|
||||
sub_11B0(8);
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 16)
|
||||
gCurrentPinballGame->unk1F = 0;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 > 16)
|
||||
{
|
||||
gCurrentPinballGame->unk3E4 = 128;
|
||||
|
|
@ -921,16 +921,16 @@ void sub_34450(void)
|
|||
{
|
||||
s16 tr4 = 29 - gCurrentPinballGame->unk5A6;
|
||||
s32 sl;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk5B0 -= ((tr4 * 8192) / 30) - 8192;
|
||||
gCurrentPinballGame->ball->unkA = gCurrentPinballGame->ball->unkA - 8192;
|
||||
|
||||
|
||||
sl = (gCurrentPinballGame->unk5AC * tr4) / 30;
|
||||
|
||||
|
||||
gCurrentPinballGame->ball->positionQ8.x = (gCurrentPinballGame->unk288 * 256) + ((Cos(gCurrentPinballGame->unk5B0) * sl) / 20000);
|
||||
|
||||
|
||||
gCurrentPinballGame->ball->positionQ8.y = (gCurrentPinballGame->unk28A * 256) - ((Sin(gCurrentPinballGame->unk5B0) * sl) / 20000);
|
||||
|
||||
|
||||
gCurrentPinballGame->ball->velocity.x = (gCurrentPinballGame->ball->velocity.x * 4) / 5;
|
||||
gCurrentPinballGame->ball->velocity.y = (gCurrentPinballGame->ball->velocity.y * 4) / 5;
|
||||
}
|
||||
|
|
@ -944,7 +944,7 @@ void sub_34450(void)
|
|||
|
||||
gCurrentPinballGame->unk5A6++;
|
||||
r9 = gUnknown_086AE68E[gCurrentPinballGame->unk3E2][0];
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
|
|
@ -957,7 +957,7 @@ void sub_34450(void)
|
|||
gCurrentPinballGame->unk388 = 2;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
}
|
||||
|
||||
|
||||
r9 = 15;
|
||||
|
||||
if (gCurrentPinballGame->unk3E6 <= 183)
|
||||
|
|
@ -973,18 +973,18 @@ void sub_34450(void)
|
|||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
gMain.spriteGroups[13].available = 0;
|
||||
gMain.spriteGroups[14].available = 0;
|
||||
gMain.spriteGroups[12].available = 0;
|
||||
gCurrentPinballGame->unk13 = 4;
|
||||
gCurrentPinballGame->unk18 = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
default:
|
||||
break;
|
||||
} //End switch
|
||||
|
||||
|
||||
DmaCopy16(3 , gUnknown_084EDACC + r9 * 1024, (void *)OBJ_VRAM0+0x10a0, BG_SCREEN_SIZE);
|
||||
|
||||
gCurrentPinballGame->unk3F0 = ((gCurrentPinballGame->unk3E8 / 10) * 2) + 16;
|
||||
|
|
@ -1006,7 +1006,7 @@ void sub_34450(void)
|
|||
}
|
||||
else
|
||||
gOamBuffer[oamSimple->oamId].paletteNum = 3;
|
||||
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + spriteGroup->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + spriteGroup->baseY;
|
||||
}
|
||||
|
|
@ -1017,9 +1017,9 @@ void sub_34450(void)
|
|||
if (gCurrentPinballGame->unk386 == 0)
|
||||
{
|
||||
u32 offY = 92;
|
||||
|
||||
|
||||
spriteGroup->baseX = -gCurrentPinballGame->unk58 + (gCurrentPinballGame->unk3E8 / 10);
|
||||
spriteGroup->baseY = -gCurrentPinballGame->unk5A + (gCurrentPinballGame->unk3EA / 10)
|
||||
spriteGroup->baseY = -gCurrentPinballGame->unk5A + (gCurrentPinballGame->unk3EA / 10)
|
||||
+ ((gCurrentPinballGame->unk3E6 / 2) - offY);
|
||||
}
|
||||
else
|
||||
|
|
@ -1027,8 +1027,8 @@ void sub_34450(void)
|
|||
spriteGroup->baseX = 240;
|
||||
spriteGroup->baseY = 160;
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
{
|
||||
s16 i;
|
||||
u8 r1;
|
||||
r1 = gMain.systemFrameCount % 4;
|
||||
|
|
@ -1039,7 +1039,7 @@ void sub_34450(void)
|
|||
oamSimple = &spriteGroup->oam[i];
|
||||
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + spriteGroup->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + spriteGroup->baseY;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1061,7 +1061,7 @@ void sub_34450(void)
|
|||
r9 = 1;
|
||||
else
|
||||
r9 = 2;
|
||||
|
||||
|
||||
DmaCopy16(3 , gUnknown_084FF30C + r9 * 0x200,(void *)OBJ_VRAM0+0x18a0, 0x200);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ void GroudonBoardProcess_3A_3B120(void)
|
|||
gCurrentPinballGame->unk4B4[i].x = 0;
|
||||
gCurrentPinballGame->unk4B4[i].y = 0;
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk4CC[i] = 0;
|
||||
|
|
@ -458,7 +458,7 @@ void sub_3B7C4(void)
|
|||
{
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gCurrentPinballGame->unk3DC = 2;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk47C & 1)
|
||||
{
|
||||
gCurrentPinballGame->unk3DD = 4;
|
||||
|
|
@ -1193,7 +1193,7 @@ void sub_3CBC4(void)
|
|||
gCurrentPinballGame->unk4E4[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk4E4[i] >= 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk4D8[i] == 0)
|
||||
|
|
@ -1201,7 +1201,7 @@ void sub_3CBC4(void)
|
|||
m4aSongNumStart(SE_UNKNOWN_0x121);
|
||||
sub_11B0(7);
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk4D8[i] < 5)
|
||||
{
|
||||
gCurrentPinballGame->unk4D2[i] = gUnknown_086AF3AC[i] + 1;
|
||||
|
|
@ -1216,7 +1216,7 @@ void sub_3CBC4(void)
|
|||
gCurrentPinballGame->unk4D2[i] = gUnknown_086AF3AC[i];
|
||||
gCurrentPinballGame->unk4CF[i] = 2;
|
||||
}
|
||||
|
||||
|
||||
gCurrentPinballGame->unk4D8[i]++;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ extern const struct SpriteSet *gUnknown_086BB420[];
|
|||
void KecleonBoardProcess_3A_35860(void)
|
||||
{
|
||||
s16 i;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk18 = 0;
|
||||
gCurrentPinballGame->unk17 = 0;
|
||||
gCurrentPinballGame->unk13 = 0;
|
||||
|
|
@ -315,7 +315,7 @@ void sub_35D54(void)
|
|||
gCurrentPinballGame->unk3F4 = gUnknown_086AE9E4[gCurrentPinballGame->unk3F4].unk0[rand & mask];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk3E2 == 60 || gCurrentPinballGame->unk3E2 == 61)
|
||||
MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A1ABC);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -965,7 +965,7 @@ void sub_39A40(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk448 < 18)
|
||||
if (gCurrentPinballGame->unk448 < 18)
|
||||
{
|
||||
gCurrentPinballGame->unk383 = 1;
|
||||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
|
|
|
|||
|
|
@ -632,7 +632,7 @@ void sub_3EDF0(void)
|
|||
gCurrentPinballGame->unk3DC = 12;
|
||||
gCurrentPinballGame->unk3E1 = 0;
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case 12:
|
||||
DmaCopy16(3, gUnknown_084AA18C, (void *)0x06011620, 0x860);
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ void RubyBoardProcess_3B_19B10(void)
|
|||
sub_19FA0();
|
||||
if (gCurrentPinballGame->unk29C != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk29C -= 1;
|
||||
gCurrentPinballGame->unk29C--;
|
||||
if (gCurrentPinballGame->unk29C == 0)
|
||||
{
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
|
||||
|
|
@ -105,7 +105,7 @@ void sub_19B90(void)
|
|||
{
|
||||
case 0:
|
||||
gUnknown_086AD4C4[gCurrentPinballGame->unk13]();
|
||||
gCurrentPinballGame->unk16 += 1;
|
||||
gCurrentPinballGame->unk16++;
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_086AD4E8[gCurrentPinballGame->unk13]();
|
||||
|
|
@ -168,7 +168,7 @@ void sub_19CC8(void)
|
|||
{
|
||||
if (gCurrentPinballGame->unk6EE != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk6EE -= 1;
|
||||
gCurrentPinballGame->unk6EE--;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -224,7 +224,7 @@ void sub_19E10(void)
|
|||
sub_1DA74();
|
||||
if (gCurrentPinballGame->unk2A0 != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk2A0 -= 1;
|
||||
gCurrentPinballGame->unk2A0--;
|
||||
if (gCurrentPinballGame->unk2A0 == 0)
|
||||
{
|
||||
randNum = Random();
|
||||
|
|
@ -291,7 +291,7 @@ void sub_19E10(void)
|
|||
|
||||
if (gCurrentPinballGame->unk1328 != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk1328 -= 1;
|
||||
gCurrentPinballGame->unk1328--;
|
||||
if (gCurrentPinballGame->unk1328 == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk1330 = gCurrentPinballGame->unk1334;
|
||||
|
|
@ -307,7 +307,7 @@ void sub_19F70(void)
|
|||
sub_1FF0C();
|
||||
if (gCurrentPinballGame->unk600 != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk600 -= 1;
|
||||
gCurrentPinballGame->unk600--;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -595,9 +595,9 @@ void sub_4387C(void)
|
|||
if (gCurrentPinballGame->unk55B[i] == 7)
|
||||
m4aSongNumStart(SE_UNKNOWN_0x135);
|
||||
}
|
||||
|
||||
|
||||
gCurrentPinballGame->unk54F[i] = 0;
|
||||
|
||||
|
||||
break;
|
||||
case 7:
|
||||
if (gUnknown_086AFB2C[gCurrentPinballGame->unk55B[i]][1] > gCurrentPinballGame->unk562[i])
|
||||
|
|
@ -620,7 +620,7 @@ void sub_4387C(void)
|
|||
|
||||
}
|
||||
gCurrentPinballGame->unk54F[i] = 2;
|
||||
|
||||
|
||||
break;
|
||||
case 8:
|
||||
if (gCurrentPinballGame->unk562[i] < 184)
|
||||
|
|
@ -707,10 +707,10 @@ void sub_4387C(void)
|
|||
gCurrentPinballGame->unk553[i] = 11;
|
||||
gCurrentPinballGame->unk55B[i] = 29;
|
||||
gCurrentPinballGame->unk562[i] = 0;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk580[i].x = gUnknown_086AFAC0[var1].unk0[gCurrentPinballGame->unk559[i]].x << 8;
|
||||
gCurrentPinballGame->unk580[i].y = gUnknown_086AFAC0[var1].unk0[gCurrentPinballGame->unk559[i]].y << 8;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk559[i]++;
|
||||
gCurrentPinballGame->unk54F[i] = 0;
|
||||
break;
|
||||
|
|
@ -842,7 +842,7 @@ void sub_4387C(void)
|
|||
sp4 = gCurrentPinballGame->unk555[i];
|
||||
gCurrentPinballGame->unk555[i] = gUnknown_086AFB2C[gCurrentPinballGame->unk55B[i]][2] + (1 - gCurrentPinballGame->unk551[i]) * 30 ;
|
||||
var2 = gUnknown_086AFB2C[gCurrentPinballGame->unk55B[i]][0];
|
||||
|
||||
|
||||
group->baseX = (gCurrentPinballGame->unk580[i].x / 256) - (gCurrentPinballGame->unk58 + 12);
|
||||
group->baseY = (gCurrentPinballGame->unk580[i].y / 256) - (gCurrentPinballGame->unk5A + 14);
|
||||
|
||||
|
|
@ -863,7 +863,7 @@ void sub_4387C(void)
|
|||
gCurrentPinballGame->unk55D[i] = -gOamBuffer[oamSimple->oamId].x;
|
||||
gCurrentPinballGame->unk55F[i] = gOamBuffer[oamSimple->oamId].y;
|
||||
}
|
||||
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x += group->baseX + gCurrentPinballGame->unk55D[i] * 2;
|
||||
}
|
||||
else
|
||||
|
|
@ -873,22 +873,22 @@ void sub_4387C(void)
|
|||
gCurrentPinballGame->unk55D[i] = gOamBuffer[oamSimple->oamId].x;
|
||||
gCurrentPinballGame->unk55F[i] = gOamBuffer[oamSimple->oamId].y;
|
||||
}
|
||||
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x += group->baseX;
|
||||
}
|
||||
|
||||
|
||||
gOamBuffer[oamSimple->oamId].y += group->baseY;
|
||||
gOamBuffer[oamSimple->oamId].tileNum += i * 9;
|
||||
}
|
||||
|
||||
var3 = 0x10;
|
||||
gCurrentPinballGame->unk570[i].x = ((gCurrentPinballGame->unk580[i].x / 256) + (gCurrentPinballGame->unk55D[i] - var3)) * 2;
|
||||
|
||||
|
||||
var3 = 0x12;
|
||||
gCurrentPinballGame->unk570[i].y = ((gCurrentPinballGame->unk580[i].y / 256) + (gCurrentPinballGame->unk55F[i] - var3)) * 2;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk566[i] = gCurrentPinballGame->unk580[i].y / 256 + gCurrentPinballGame->unk55F[i];
|
||||
|
||||
|
||||
group = &gMain.spriteGroups[16 + i];
|
||||
if (sp4 == 12 || sp4 == 42)
|
||||
{
|
||||
|
|
@ -901,10 +901,10 @@ void sub_4387C(void)
|
|||
{
|
||||
sp4 = 0;
|
||||
}
|
||||
|
||||
|
||||
group->baseX = (gCurrentPinballGame->unk580[i].x / 256) - (gCurrentPinballGame->unk58 + 12);
|
||||
group->baseY = (gCurrentPinballGame->unk580[i].y / 256) - (gCurrentPinballGame->unk5A + 14);
|
||||
|
||||
|
||||
DmaCopy16(3, gUnknown_084B046C[sp4], (void *)0x06011EE0 + i * 0x120, 0x120);
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ void sub_1931C(struct Vector16 arg0)
|
|||
struct Unk086ACE8C *line;
|
||||
struct Vector16 point1, point2;
|
||||
|
||||
line = &gUnknown_086ACE8C[gCurrentPinballGame->unk13BC[0].unk0];
|
||||
line = &gUnknown_086ACE8C[gCurrentPinballGame->flipper[0].position];
|
||||
point1.x = line->unk0 + 0x53;
|
||||
point1.y = line->unk2 + gUnknown_02031520.unk14.unk1C;
|
||||
|
||||
|
|
@ -27,11 +27,11 @@ void sub_1931C(struct Vector16 arg0)
|
|||
check = (point2.y - point1.y) * (arg0.x - point1.x) * 30 / (point2.x - point1.x) + (point1.y - arg0.y) * 30;
|
||||
|
||||
if (check >= 0)
|
||||
gCurrentPinballGame->unk13BC[0].unk8 = 1;
|
||||
gCurrentPinballGame->flipper[0].unk8 = 1;
|
||||
else
|
||||
gCurrentPinballGame->unk13BC[0].unk8 = -1;
|
||||
gCurrentPinballGame->flipper[0].unk8 = -1;
|
||||
|
||||
line = &gUnknown_086ACE8C[gCurrentPinballGame->unk13BC[1].unk0];
|
||||
line = &gUnknown_086ACE8C[gCurrentPinballGame->flipper[1].position];
|
||||
|
||||
point1.x = 0x9C - line->unk0;
|
||||
point1.y = line->unk2 + gUnknown_02031520.unk14.unk1C;
|
||||
|
|
@ -42,9 +42,9 @@ void sub_1931C(struct Vector16 arg0)
|
|||
check = (point2.y - point1.y) * (arg0.x - point1.x) * 30 / (point2.x - point1.x) + (point1.y - arg0.y) * 30;
|
||||
|
||||
if (check >= 0)
|
||||
gCurrentPinballGame->unk13BC[1].unk8 = 1;
|
||||
gCurrentPinballGame->flipper[1].unk8 = 1;
|
||||
else
|
||||
gCurrentPinballGame->unk13BC[1].unk8 = -1;
|
||||
gCurrentPinballGame->flipper[1].unk8 = -1;
|
||||
}
|
||||
|
||||
void MainBoardProcess_4B_19490(void)
|
||||
|
|
@ -58,10 +58,10 @@ void MainBoardProcess_4B_19490(void)
|
|||
{
|
||||
struct SpriteGroup *spriteGroup;
|
||||
|
||||
if (gCurrentPinballGame->unk13BC[i].unk0 > 10)
|
||||
gCurrentPinballGame->unk13BC[i].unk0 = 10;
|
||||
else if (gCurrentPinballGame->unk13BC[i].unk0 < 0)
|
||||
gCurrentPinballGame->unk13BC[i].unk0 = 0;
|
||||
if (gCurrentPinballGame->flipper[i].position > 10)
|
||||
gCurrentPinballGame->flipper[i].position = 10;
|
||||
else if (gCurrentPinballGame->flipper[i].position < 0)
|
||||
gCurrentPinballGame->flipper[i].position = 0;
|
||||
|
||||
spriteGroup = &gMain.spriteGroups[10 + i];
|
||||
if (spriteGroup->available)
|
||||
|
|
@ -69,7 +69,7 @@ void MainBoardProcess_4B_19490(void)
|
|||
s8 unk0;
|
||||
struct OamDataSimple *oamData;
|
||||
|
||||
unk0 = gCurrentPinballGame->unk13BC[i].unk0 / 2;
|
||||
unk0 = gCurrentPinballGame->flipper[i].position / 2;
|
||||
spriteGroup->baseX = gUnknown_086ACEF4[i] - gCurrentPinballGame->unk58;
|
||||
spriteGroup->baseY = gUnknown_02031520.unk14.unk1C - gCurrentPinballGame->unk5A;
|
||||
|
||||
|
|
@ -91,34 +91,34 @@ void sub_195C4(void)
|
|||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
s16 dir;
|
||||
struct UnkPinballGame13BC *unk13BC;
|
||||
unk13BC = &gCurrentPinballGame->unk13BC[i];
|
||||
struct FlipperState *flipper;
|
||||
flipper = &gCurrentPinballGame->flipper[i];
|
||||
|
||||
unk13BC->unk1 = unk13BC->unk0;
|
||||
unk13BC->unk2 = 0;
|
||||
flipper->prevPosition = flipper->position;
|
||||
flipper->unk2 = 0;
|
||||
|
||||
if (gCurrentPinballGame->heldButtonActions[i])
|
||||
{
|
||||
if (unk13BC->unk6 == 0 && gCurrentPinballGame->unk25 == 0)
|
||||
if (flipper->active == 0 && gCurrentPinballGame->unk25 == 0)
|
||||
m4aSongNumStart(SE_UNKNOWN_0x72);
|
||||
|
||||
unk13BC->unk6 = 1;
|
||||
unk13BC->unk7 = 0;
|
||||
flipper->active = 1;
|
||||
flipper->stallTicks = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (unk13BC->unk0 == 10)
|
||||
if (flipper->position == 10)
|
||||
{
|
||||
if (unk13BC->unk7 > 2)
|
||||
unk13BC->unk6 = gCurrentPinballGame->heldButtonActions[i];
|
||||
unk13BC->unk7++;
|
||||
if (flipper->stallTicks > 2)
|
||||
flipper->active = gCurrentPinballGame->heldButtonActions[i];
|
||||
flipper->stallTicks++;
|
||||
}
|
||||
}
|
||||
|
||||
dir = 0;
|
||||
if (unk13BC->unk6 != 0)
|
||||
if (flipper->active != 0)
|
||||
{
|
||||
if (unk13BC->unk0 != 10)
|
||||
if (flipper->position != 10)
|
||||
{
|
||||
dir = 1;
|
||||
}
|
||||
|
|
@ -129,14 +129,14 @@ void sub_195C4(void)
|
|||
gCurrentPinballGame->unk5C = 0;
|
||||
sub_11B0(7);
|
||||
}
|
||||
unk13BC->unk2 = unk13BC->unk0 / 2 + 1;
|
||||
unk13BC->unk0 += 4;
|
||||
flipper->unk2 = flipper->position / 2 + 1;
|
||||
flipper->position += 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (unk13BC->unk0 != 0)
|
||||
if (flipper->position != 0)
|
||||
{
|
||||
unk13BC->unk2 = unk13BC->unk0 / 2 + 6;
|
||||
flipper->unk2 = flipper->position / 2 + 6;
|
||||
dir = -1;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk5C != 0)
|
||||
|
|
@ -146,12 +146,12 @@ void sub_195C4(void)
|
|||
gCurrentPinballGame->unk5C = 0;
|
||||
sub_11B0(7);
|
||||
}
|
||||
unk13BC->unk0 -= 2;
|
||||
flipper->position -= 2;
|
||||
}
|
||||
unk13BC->unk3 = unk13BC->unk3 * dir;
|
||||
if (unk13BC->unk3 <= 0)
|
||||
unk13BC->unk4 = 0;
|
||||
unk13BC->unk3 = dir;
|
||||
flipper->unk3 = flipper->unk3 * dir;
|
||||
if (flipper->unk3 <= 0)
|
||||
flipper->unk4 = 0;
|
||||
flipper->unk3 = dir;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -169,10 +169,10 @@ void BonusBoardProcess_4B_19734(void)
|
|||
{
|
||||
struct SpriteGroup *spriteGroup;
|
||||
|
||||
if (gCurrentPinballGame->unk13BC[i].unk0 > 10)
|
||||
gCurrentPinballGame->unk13BC[i].unk0 = 10;
|
||||
else if (gCurrentPinballGame->unk13BC[i].unk0 < 0)
|
||||
gCurrentPinballGame->unk13BC[i].unk0 = 0;
|
||||
if (gCurrentPinballGame->flipper[i].position > 10)
|
||||
gCurrentPinballGame->flipper[i].position = 10;
|
||||
else if (gCurrentPinballGame->flipper[i].position < 0)
|
||||
gCurrentPinballGame->flipper[i].position = 0;
|
||||
|
||||
spriteGroup = &gMain.spriteGroups[3 + i];
|
||||
if (spriteGroup->available)
|
||||
|
|
@ -180,7 +180,7 @@ void BonusBoardProcess_4B_19734(void)
|
|||
s8 unk0;
|
||||
struct OamDataSimple *oamData;
|
||||
|
||||
unk0 = gCurrentPinballGame->unk13BC[i].unk0 / 2;
|
||||
unk0 = gCurrentPinballGame->flipper[i].position / 2;
|
||||
spriteGroup->baseX = gUnknown_086ACEF4[i] - gCurrentPinballGame->unk58;
|
||||
spriteGroup->baseY = gUnknown_02031520.unk14.unk1C - gCurrentPinballGame->unk5A;
|
||||
|
||||
|
|
@ -206,35 +206,35 @@ void sub_19894(void)
|
|||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
s16 dir;
|
||||
struct UnkPinballGame13BC *unk13BC;
|
||||
unk13BC = &gCurrentPinballGame->unk13BC[i];
|
||||
struct FlipperState *flipper;
|
||||
flipper = &gCurrentPinballGame->flipper[i];
|
||||
|
||||
unk13BC->unk1 = unk13BC->unk0;
|
||||
unk13BC->unk2 = 0;
|
||||
flipper->prevPosition = flipper->position;
|
||||
flipper->unk2 = 0;
|
||||
|
||||
if (gCurrentPinballGame->heldButtonActions[i] && gMain.unkF == 0)
|
||||
{
|
||||
if (unk13BC->unk6 == 0 && gCurrentPinballGame->unk25 == 0 && gCurrentPinballGame->unk1A == 0)
|
||||
if (flipper->active == 0 && gCurrentPinballGame->unk25 == 0 && gCurrentPinballGame->unk1A == 0)
|
||||
{
|
||||
m4aSongNumStart(SE_UNKNOWN_0x72);
|
||||
}
|
||||
unk13BC->unk6 = 1;
|
||||
unk13BC->unk7 = 0;
|
||||
flipper->active = 1;
|
||||
flipper->stallTicks = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (unk13BC->unk0 == 10)
|
||||
if (flipper->position == 10)
|
||||
{
|
||||
if (unk13BC->unk7 > 2)
|
||||
unk13BC->unk6 = 0;
|
||||
unk13BC->unk7++;
|
||||
if (flipper->stallTicks > 2)
|
||||
flipper->active = 0;
|
||||
flipper->stallTicks++;
|
||||
}
|
||||
}
|
||||
|
||||
dir = 0;
|
||||
if (unk13BC->unk6 != 0)
|
||||
if (flipper->active != 0)
|
||||
{
|
||||
if (unk13BC->unk0 != 10)
|
||||
if (flipper->position != 10)
|
||||
{
|
||||
dir = 1;
|
||||
}
|
||||
|
|
@ -245,14 +245,14 @@ void sub_19894(void)
|
|||
gCurrentPinballGame->unk5C = 0;
|
||||
sub_11B0(7);
|
||||
}
|
||||
unk13BC->unk2 = unk13BC->unk0 / 2 + 1;
|
||||
unk13BC->unk0 += 4;
|
||||
flipper->unk2 = flipper->position / 2 + 1;
|
||||
flipper->position += 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (unk13BC->unk0 != 0)
|
||||
if (flipper->position != 0)
|
||||
{
|
||||
unk13BC->unk2 = unk13BC->unk0 / 2 + 6;
|
||||
flipper->unk2 = flipper->position / 2 + 6;
|
||||
dir = -1;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk5C != 0)
|
||||
|
|
@ -262,11 +262,11 @@ void sub_19894(void)
|
|||
gCurrentPinballGame->unk5C = 0;
|
||||
sub_11B0(7);
|
||||
}
|
||||
unk13BC->unk0 -= 2;
|
||||
flipper->position -= 2;
|
||||
}
|
||||
unk13BC->unk3 = unk13BC->unk3 * dir;
|
||||
if (unk13BC->unk3 <= 0)
|
||||
unk13BC->unk4 = 0;
|
||||
unk13BC->unk3 = dir;
|
||||
flipper->unk3 = flipper->unk3 * dir;
|
||||
if (flipper->unk3 <= 0)
|
||||
flipper->unk4 = 0;
|
||||
flipper->unk3 = dir;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,11 @@
|
|||
#include "m4a.h"
|
||||
#include "constants/anglemath.h"
|
||||
|
||||
extern u8 gUnknown_0839A28C[];
|
||||
extern u16 gUnknown_086ACD84[][2];
|
||||
extern u16 gUnknown_086ACE2C[][2];
|
||||
extern s8 gUnknown_086ACDB8[];
|
||||
|
||||
|
||||
u16 sub_13824(struct Vector16*);
|
||||
void sub_13D24(u16,struct Vector16*, struct Vector16*);
|
||||
|
|
@ -12,7 +16,7 @@ void sub_13934(struct Vector16 *arg0, struct Vector16 *arg1, u16 angle);
|
|||
void sub_1493C(void);
|
||||
u16 sub_14488(struct Vector16*, struct Vector16);
|
||||
|
||||
void sub_14B84(u32 arg0, s16 arg1, struct Vector16 *arg2, u16 arg3);
|
||||
void sub_14B84(s32 arg0, s16 arg1, struct Vector16* arg2, u16 arg3);
|
||||
|
||||
void AllBoardProcess_6A_4CEA8()
|
||||
{
|
||||
|
|
@ -28,7 +32,7 @@ void AllBoardProcess_6B_1333C()
|
|||
u16 r7;
|
||||
|
||||
r7 = sub_13824(&var0);
|
||||
switch (gCurrentPinballGame->unk22)
|
||||
switch (gCurrentPinballGame->unk22)
|
||||
{
|
||||
case 7:
|
||||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
|
|
@ -39,7 +43,7 @@ void AllBoardProcess_6B_1333C()
|
|||
sub_13D24(r7, &gCurrentPinballGame->ball->velocity, &var2);
|
||||
for (i = 0; i < 9; i++)
|
||||
{
|
||||
if (gUnknown_086ACD50[i].unk2 <= r7)
|
||||
if (gUnknown_086ACD50[i].unk2 <= r7)
|
||||
{
|
||||
var0.x += gUnknown_086ACD50[i].unk0;
|
||||
var0.y += gUnknown_086ACD50[i].unk1;
|
||||
|
|
@ -51,7 +55,7 @@ void AllBoardProcess_6B_1333C()
|
|||
break;
|
||||
case 6:
|
||||
sub_13934(&var0, &var1,r7);
|
||||
sub_13D24(r7, &gCurrentPinballGame->ball->velocity, &var2);
|
||||
sub_13D24(r7, &gCurrentPinballGame->ball->velocity, &var2);
|
||||
gCurrentPinballGame->ball->velocity.x = var2.x + var1.x;
|
||||
gCurrentPinballGame->ball->velocity.y = var2.y + var1.y;
|
||||
break;
|
||||
|
|
@ -60,7 +64,7 @@ void AllBoardProcess_6B_1333C()
|
|||
sub_13D24(r7, &gCurrentPinballGame->ball->velocity, &var2);
|
||||
for (i = 0; i < 9; i++)
|
||||
{
|
||||
if (gUnknown_086ACD50[i].unk2 <= r7)
|
||||
if (gUnknown_086ACD50[i].unk2 <= r7)
|
||||
{
|
||||
var0.x += gUnknown_086ACD50[i].unk0;
|
||||
var0.y += gUnknown_086ACD50[i].unk1;
|
||||
|
|
@ -74,20 +78,20 @@ void AllBoardProcess_6B_1333C()
|
|||
sub_13934(&var0, &var1, r7);
|
||||
var0.x -= (gUnknown_02031520.unk14.unk22 * 2);
|
||||
var0.y -= (gUnknown_02031520.unk14.unk20 * 2);
|
||||
if (gCurrentPinballGame->unk13BC[0].unk4 == 0)
|
||||
if (gCurrentPinballGame->flipper[0].unk4 == 0)
|
||||
{
|
||||
sub_13D24(r7, &gCurrentPinballGame->ball->velocity, &var2);
|
||||
gCurrentPinballGame->unk13BC[0].unk4 = 1;
|
||||
gCurrentPinballGame->flipper[0].unk4 = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
var2.x = gCurrentPinballGame->ball->velocity.x;
|
||||
var2.y = gCurrentPinballGame->ball->velocity.y;
|
||||
}
|
||||
sub_13B28(&var0, &var2, 0);
|
||||
gCurrentPinballGame->ball->velocity.x = var2.x + var1.x;
|
||||
gCurrentPinballGame->ball->velocity.y = var2.y + var1.y;
|
||||
if (gCurrentPinballGame->unk22 == 5)
|
||||
if (gCurrentPinballGame->unk22 == 5)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
|
|
@ -106,10 +110,10 @@ void AllBoardProcess_6B_1333C()
|
|||
sub_13934(&var0, &var1, r7);
|
||||
var0.x -= (gUnknown_02031520.unk14.unk24 * 2);
|
||||
var0.y -= (gUnknown_02031520.unk14.unk20 * 2);
|
||||
if (gCurrentPinballGame->unk13BC[1].unk4 == 0)
|
||||
if (gCurrentPinballGame->flipper[1].unk4 == 0)
|
||||
{
|
||||
sub_13D24(r7, &gCurrentPinballGame->ball->velocity, &var2);
|
||||
gCurrentPinballGame->unk13BC[1].unk4 = 1;
|
||||
gCurrentPinballGame->flipper[1].unk4 = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -122,7 +126,7 @@ void AllBoardProcess_6B_1333C()
|
|||
var2.x = -var2.x;
|
||||
gCurrentPinballGame->ball->velocity.x = var2.x + var1.x;
|
||||
gCurrentPinballGame->ball->velocity.y = var2.y + var1.y;
|
||||
if (gCurrentPinballGame->unk22 == 5)
|
||||
if (gCurrentPinballGame->unk22 == 5)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
|
|
@ -155,12 +159,12 @@ void AllBoardProcess_6B_1333C()
|
|||
gCurrentPinballGame->unk127 = -1;
|
||||
}
|
||||
}
|
||||
if (gCurrentPinballGame->unk5F3)
|
||||
if (gCurrentPinballGame->unk5F3)
|
||||
{
|
||||
sub_1493C();
|
||||
}
|
||||
}
|
||||
if (gCurrentPinballGame->unk22 != 0)
|
||||
if (gCurrentPinballGame->unk22 != 0)
|
||||
{
|
||||
gCurrentPinballGame->ball->positionQ1.x = var0.x;
|
||||
gCurrentPinballGame->ball->positionQ1.y = var0.y;
|
||||
|
|
@ -169,7 +173,7 @@ void AllBoardProcess_6B_1333C()
|
|||
}
|
||||
}
|
||||
|
||||
u16 sub_13824(struct Vector16* param)
|
||||
u16 sub_13824(struct Vector16* param)
|
||||
{
|
||||
u16 retVal;
|
||||
struct Vector16 test;
|
||||
|
|
@ -269,46 +273,46 @@ void sub_13B28(struct Vector16* arg0, struct Vector16* arg1, s16 arg2)
|
|||
int xx, yy;
|
||||
struct Vector16 r5 = { arg0->x * 128, arg0->y * 128 };
|
||||
struct Vector16 sp4 = { arg1->x, arg1->y };
|
||||
|
||||
|
||||
for (;;)
|
||||
{
|
||||
sp12 = gCurrentPinballGame->unk13BC[arg2].unk0 - gCurrentPinballGame->unk13BC[arg2].unk1;
|
||||
sp12 = gCurrentPinballGame->flipper[arg2].position - gCurrentPinballGame->flipper[arg2].prevPosition;
|
||||
|
||||
if ((sp12 *= gCurrentPinballGame->unk13BC[arg2].unk8) > 0)
|
||||
if ((sp12 *= gCurrentPinballGame->flipper[arg2].unk8) > 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk13BC[arg2].unk2 < 7)
|
||||
r4 = gUnknown_086ACD84[gCurrentPinballGame->unk13BC[arg2].unk5 - 1][0] + 0x4000;
|
||||
if (gCurrentPinballGame->flipper[arg2].unk2 < 7)
|
||||
r4 = gUnknown_086ACD84[gCurrentPinballGame->flipper[arg2].unk5 - 1][0] + 0x4000;
|
||||
else
|
||||
r4 = gUnknown_086ACD84[gCurrentPinballGame->unk13BC[arg2].unk5 + 1][1] + -0x4000; // This changes compilation, apparently
|
||||
r4 = gUnknown_086ACD84[gCurrentPinballGame->flipper[arg2].unk5 + 1][1] + -0x4000; // This changes compilation, apparently
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
r7.x = r5.x - 22 * 128;
|
||||
r7.y = r5.y - 48 * 128;
|
||||
|
||||
|
||||
xx = r7.x * r7.x;
|
||||
yy = r7.y * r7.y;
|
||||
temp = xx + yy - 0x240000;
|
||||
temp = Sqrt(temp * 4) / 2;
|
||||
sub_14B84(temp, arg2, &sp4, r4);
|
||||
|
||||
|
||||
if (sp4.x > 0x1C2)
|
||||
sp4.x = 0x1C2;
|
||||
else if (sp4.x < -0x1C2)
|
||||
sp4.x = -0x1C2;
|
||||
|
||||
|
||||
r5.x += sp4.x;
|
||||
r5.y += sp4.y;
|
||||
arg0->x = r5.x / 128;
|
||||
arg0->y = r5.y / 128;
|
||||
flag = FALSE;
|
||||
|
||||
|
||||
if (arg0->x < 50)
|
||||
break;
|
||||
|
||||
|
||||
for (i = gCurrentPinballGame->unk1E; i < 4; i++)
|
||||
{
|
||||
if (sub_14AF4(*arg0, i + 1, &sp0, arg2))
|
||||
|
|
@ -317,11 +321,11 @@ void sub_13B28(struct Vector16* arg0, struct Vector16* arg1, s16 arg2)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!flag)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (sp12 <= 0)
|
||||
{
|
||||
gCurrentPinballGame->unk22 = 5;
|
||||
|
|
@ -334,36 +338,36 @@ void sub_13B28(struct Vector16* arg0, struct Vector16* arg1, s16 arg2)
|
|||
}
|
||||
|
||||
|
||||
void sub_13D24(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg2)
|
||||
{
|
||||
void sub_13D24(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg2)
|
||||
{
|
||||
u16 angleOfFlippedArg1;
|
||||
s32 angleDelta, adjustedAngle;
|
||||
s16 angleSign;
|
||||
|
||||
u16 halfMag;
|
||||
s32 halfMag2;
|
||||
|
||||
|
||||
s32 forwardMag, lateralMag, scaledForwardMag, scaledLateralMag;
|
||||
u32 vxSquared, vySquared;
|
||||
|
||||
|
||||
s32 curveDir, curveSign, curveDirScaledFactor, curveScaleFactor;
|
||||
u16 finalAngle;
|
||||
|
||||
|
||||
struct Vector32 tempVec;
|
||||
struct Vector16 tempVec2;
|
||||
|
||||
|
||||
angleOfFlippedArg1 = ArcTan2(-arg1->x, arg1->y);
|
||||
|
||||
vxSquared = (arg1->x * arg1->x) + (arg1->y * arg1->y);
|
||||
vxSquared = (arg1->x * arg1->x) + (arg1->y * arg1->y);
|
||||
halfMag = Sqrt(vxSquared * 4) /2;
|
||||
|
||||
// Determine smallest angle difference and its direction
|
||||
if (angleOfFlippedArg1 > arg0)
|
||||
if (angleOfFlippedArg1 > arg0)
|
||||
{
|
||||
angleDelta = angleOfFlippedArg1 - arg0;
|
||||
angleSign = -1;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
angleDelta = arg0 - angleOfFlippedArg1;
|
||||
angleSign = 1;
|
||||
|
|
@ -375,7 +379,7 @@ void sub_13D24(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg2)
|
|||
//0x10000 = 360 degrees
|
||||
|
||||
//Clamps to the closest 180, with direction
|
||||
if (angleDelta > ANGLE_180)
|
||||
if (angleDelta > ANGLE_180)
|
||||
{
|
||||
angleDelta = ANGLE_360 - angleDelta;
|
||||
angleSign = -angleSign;
|
||||
|
|
@ -383,11 +387,11 @@ void sub_13D24(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg2)
|
|||
|
||||
//Adds a 90 degree offset based on the delta factor
|
||||
adjustedAngle = arg0 + angleSign * ANGLE_90;
|
||||
|
||||
|
||||
// Apply signed adjustedAngle to stay in 0..0xFFFF
|
||||
if (adjustedAngle < 0)
|
||||
adjustedAngle = ANGLE_360 + adjustedAngle;
|
||||
|
||||
|
||||
// Project a curved arg2 delta based on half the magnitude
|
||||
// Note: the trigonometric functions return s16, typically scaled by 0x1000 or more
|
||||
lateralMag = halfMag * Sin(angleDelta) / 20000;
|
||||
|
|
@ -398,9 +402,9 @@ void sub_13D24(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg2)
|
|||
{
|
||||
if (forwardMag > 0x46)
|
||||
m4aSongNumStart(SE_UNKNOWN_0x77);
|
||||
|
||||
if (forwardMag > 0x118
|
||||
&& gCurrentPinballGame->unk61C == 0
|
||||
|
||||
if (forwardMag > 0x118
|
||||
&& gCurrentPinballGame->unk61C == 0
|
||||
&& gMain.selectedField < MAIN_FIELD_COUNT)
|
||||
{
|
||||
sub_11B0(6);
|
||||
|
|
@ -419,22 +423,22 @@ void sub_13D24(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg2)
|
|||
|
||||
curveDir = -angleSign;
|
||||
curveDirScaledFactor = (curveDir * 25) * 1024;
|
||||
gCurrentPinballGame->ball->unk6 =
|
||||
curveDirScaledFactor * scaledLateralMag / 0xEB8
|
||||
gCurrentPinballGame->ball->unk6 =
|
||||
curveDirScaledFactor * scaledLateralMag / 0xEB8
|
||||
+ gCurrentPinballGame->ball->unk4;
|
||||
|
||||
tempVec.x = forwardMag * Cos(arg0);
|
||||
tempVec.y = -forwardMag * Sin(arg0);
|
||||
|
||||
|
||||
tempVec.x = lateralMag * Cos(adjustedAngle) + tempVec.x;
|
||||
tempVec.y = -lateralMag * Sin(adjustedAngle) + tempVec.y;
|
||||
|
||||
tempVec.x = tempVec.x / 20000;
|
||||
tempVec.y = tempVec.y / 20000;
|
||||
|
||||
// With how the curveSign/curveScaleFactor are only used 'multiplied together'
|
||||
// With how the curveSign/curveScaleFactor are only used 'multiplied together'
|
||||
// with the tempVec calculation, the negations cancel out. - Shouldn't be needed.
|
||||
// Speculation is that this might have been a defensive code measure against
|
||||
// Speculation is that this might have been a defensive code measure against
|
||||
// sign misbehavior, written by someone familar with assembly patterns.
|
||||
curveSign = 1;
|
||||
if (curveScaleFactor < 0)
|
||||
|
|
@ -443,26 +447,26 @@ void sub_13D24(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg2)
|
|||
curveScaleFactor = -curveScaleFactor;
|
||||
}
|
||||
curveSign = curveDir * curveSign;
|
||||
|
||||
|
||||
tempVec2.x = curveSign * curveScaleFactor * Cos(adjustedAngle) / 20000;
|
||||
tempVec2.y = -curveSign * curveScaleFactor * Sin(adjustedAngle) / 20000;
|
||||
|
||||
|
||||
vxSquared = tempVec.x * tempVec.x;
|
||||
vySquared = tempVec.y * tempVec.y;
|
||||
//Yes, the name is weird here. -- var reuse was needed for register match
|
||||
halfMag2 = vxSquared + vySquared;
|
||||
halfMag2 = Sqrt(halfMag2 * 4) /2;
|
||||
|
||||
|
||||
tempVec.x = tempVec2.x + tempVec.x;
|
||||
tempVec.y = tempVec2.y + tempVec.y;
|
||||
|
||||
finalAngle = ArcTan2( tempVec.x, -tempVec.y);
|
||||
|
||||
if (gMain.selectedField == FIELD_SAPPHIRE
|
||||
&& gCurrentPinballGame->unk24 > 0
|
||||
&& gCurrentPinballGame->ball->positionQ0.y < 0xD2)
|
||||
if (gMain.selectedField == FIELD_SAPPHIRE
|
||||
&& gCurrentPinballGame->unk24 > 0
|
||||
&& gCurrentPinballGame->ball->positionQ0.y < 0xD2)
|
||||
{
|
||||
tempVec.x = halfMag * Cos(finalAngle) / 20000;
|
||||
tempVec.x = halfMag * Cos(finalAngle) / 20000;
|
||||
tempVec.y = -halfMag * Sin(finalAngle) / 20000;
|
||||
}
|
||||
else
|
||||
|
|
@ -485,7 +489,7 @@ void sub_14074(u16 arg0, struct Vector32 *arg1, u16 arg2)
|
|||
s16 var0;
|
||||
|
||||
struct Vector16 tempVec;
|
||||
|
||||
|
||||
x = gCurrentPinballGame->ball->velocity.x;
|
||||
y = gCurrentPinballGame->ball->velocity.y;
|
||||
vMagSquared = (x * x) + (y * y);
|
||||
|
|
@ -496,15 +500,15 @@ void sub_14074(u16 arg0, struct Vector32 *arg1, u16 arg2)
|
|||
{
|
||||
s32 value = -0x2A1C;
|
||||
var0 = value + arg2;
|
||||
arg0 = 0x6a1c;
|
||||
}
|
||||
arg0 = 0x6a1c;
|
||||
}
|
||||
else
|
||||
{
|
||||
s32 value = 0x55e4;
|
||||
var0 = value - arg2;
|
||||
arg0 = 0x15e4;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (var0 >= 0 && var0 <= 0x1200 && vMagSquared < 0x4000)
|
||||
{
|
||||
tempVec.x = 0;
|
||||
|
|
@ -515,26 +519,26 @@ void sub_14074(u16 arg0, struct Vector32 *arg1, u16 arg2)
|
|||
arg1->x = arg1->x / 5;
|
||||
arg1->y = arg1->y / 5;
|
||||
|
||||
gCurrentPinballGame->ball->unk6 = (gCurrentPinballGame->ball->unk6 * 4) / 10;
|
||||
|
||||
gCurrentPinballGame->ball->unk6 = (gCurrentPinballGame->ball->unk6 * 4) / 10;
|
||||
|
||||
if ( gCurrentPinballGame->ballSpeed > 0)
|
||||
{
|
||||
tempVec.x = 230 * Cos(arg0) / VECTORSCALEDOWN;
|
||||
tempVec.y = -230 * Sin(arg0) / VECTORSCALEDOWN;
|
||||
}
|
||||
tempVec.y = -230 * Sin(arg0) / VECTORSCALEDOWN;
|
||||
}
|
||||
else
|
||||
{
|
||||
tempVec.x = 285 * Cos(arg0) / VECTORSCALEDOWN;
|
||||
tempVec.y = -285 * Sin(arg0) / VECTORSCALEDOWN;
|
||||
}
|
||||
|
||||
|
||||
gCurrentPinballGame->unk716 = 4;
|
||||
if (gCurrentPinballGame->ball->positionQ0.x < 120)
|
||||
gCurrentPinballGame->unk717 = 0;
|
||||
else
|
||||
gCurrentPinballGame->unk717 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk23 == 1)
|
||||
|
|
@ -546,7 +550,7 @@ void sub_14074(u16 arg0, struct Vector32 *arg1, u16 arg2)
|
|||
{
|
||||
tempVec.x = 60 * Cos(arg0) / VECTORSCALEDOWN;
|
||||
tempVec.y = -60 * Sin(arg0) / VECTORSCALEDOWN;
|
||||
}
|
||||
}
|
||||
else if (arg0 >= 0x1000 && arg0 <= 0x7000)
|
||||
{
|
||||
tempVec.x = 240 * Cos(arg0) / VECTORSCALEDOWN;
|
||||
|
|
@ -557,17 +561,17 @@ void sub_14074(u16 arg0, struct Vector32 *arg1, u16 arg2)
|
|||
tempVec.x = 120 * Cos(arg0) / VECTORSCALEDOWN;
|
||||
tempVec.y = -120 * Sin(arg0) / VECTORSCALEDOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tempVec.x = gUnknown_086ACDF4[gCurrentPinballGame->unk23] * Cos(arg0) / VECTORSCALEDOWN;
|
||||
tempVec.y = -gUnknown_086ACDF4[gCurrentPinballGame->unk23] * Sin(arg0) / VECTORSCALEDOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
arg1->x = arg1->x + tempVec.x;
|
||||
arg1->y = arg1->y + tempVec.y;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk5A4 != 0)
|
||||
{
|
||||
s16 x2 = arg1->x;
|
||||
|
|
@ -577,26 +581,26 @@ void sub_14074(u16 arg0, struct Vector32 *arg1, u16 arg2)
|
|||
{
|
||||
gCurrentPinballGame->unk5A4 = 0;
|
||||
vMagSquared = 0x80;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
vMagSquared = 0x280;
|
||||
vMagSquared = 0x280;
|
||||
}
|
||||
|
||||
|
||||
if (x2 < 0)
|
||||
{
|
||||
x2 = -x2;
|
||||
x2 = -x2;
|
||||
xSign = -1;
|
||||
}
|
||||
|
||||
|
||||
if (x2 < 0x100)
|
||||
arg1->x = xSign * 256;
|
||||
|
||||
arg1->x = xSign * 256;
|
||||
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
angle = ArcTan2(arg1->x, -arg1->y);
|
||||
arg1->x = vMagSquared * Cos(angle) / VECTORSCALEDOWN;
|
||||
arg1->y = -vMagSquared * Sin(angle) / VECTORSCALEDOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_14488(struct Vector16* arg0, struct Vector16 arg1) {
|
||||
|
|
@ -696,14 +700,14 @@ u16 sub_14488(struct Vector16* arg0, struct Vector16 arg1) {
|
|||
return sp0_return;
|
||||
}
|
||||
|
||||
u16 sub_1467C(struct Vector16* arg0, u16* arg1)
|
||||
u16 sub_1467C(struct Vector16* arg0, u16* arg1)
|
||||
{
|
||||
u16 res;
|
||||
struct Vector16 vec1;
|
||||
struct Vector16 vec2;
|
||||
|
||||
|
||||
res = 0;
|
||||
|
||||
|
||||
vec1.x = arg0->x - gUnknown_02031520.unk14.unk22 * 2;
|
||||
vec2.x = arg0->x - gUnknown_02031520.unk14.unk24 * 2;
|
||||
vec1.y = arg0->y - gUnknown_02031520.unk14.unk20 * 2;
|
||||
|
|
@ -721,7 +725,7 @@ u16 sub_1467C(struct Vector16* arg0, u16* arg1)
|
|||
}
|
||||
|
||||
if (res == 0)
|
||||
{
|
||||
{
|
||||
if (vec2.x <= 95 && vec2.x >= 0)
|
||||
{
|
||||
vec2.x = 95 - vec2.x;
|
||||
|
|
@ -731,8 +735,259 @@ u16 sub_1467C(struct Vector16* arg0, u16* arg1)
|
|||
res = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
u16 sub_14740(struct Vector16 *arg0, u16 *arg1)
|
||||
{
|
||||
struct Vector16 vec1;
|
||||
u16 x, y;
|
||||
u16 res;
|
||||
u16 var0;
|
||||
|
||||
res = 0;
|
||||
if (gCurrentPinballGame->unk5A4 != 2)
|
||||
{
|
||||
vec1.x = arg0->x / 2 - gCurrentPinballGame->unkC4;
|
||||
vec1.y = arg0->y / 2 - gCurrentPinballGame->unkC6;
|
||||
if ((vec1.y >= 0 && vec1.y < 48) && (vec1.x >= 0 && vec1.x < 48))
|
||||
{
|
||||
s32 ix = vec1.y * 48 + vec1.x;
|
||||
var0 = gUnknown_0839A28C[ix];
|
||||
if (var0 & 0x80)
|
||||
{
|
||||
gCurrentPinballGame->unk22 = 2;
|
||||
gCurrentPinballGame->unk23 = 3;
|
||||
//Todo: fakematch; used to swap register order
|
||||
*arg1 = (var0 & 0x7F & var0) * 512;
|
||||
gCurrentPinballGame->unk5A6 = 20;
|
||||
|
||||
if (gCurrentPinballGame->unk5A9)
|
||||
gCurrentPinballGame->unk5A9 = 24;
|
||||
else
|
||||
gCurrentPinballGame->unk5A9 = 20;
|
||||
|
||||
// Only difference between these two branches is the played sound
|
||||
if (gCurrentPinballGame->currentSpecies == SPECIES_JIRACHI)
|
||||
{
|
||||
if (gCurrentPinballGame->unk5AA == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk5A5++;
|
||||
if (gCurrentPinballGame->unk5A5 == 3)
|
||||
{
|
||||
gCurrentPinballGame->unk71D[gCurrentPinballGame->unk5A5 - 1] = 3;
|
||||
gCurrentPinballGame->unk5A4 = 2;
|
||||
gCurrentPinballGame->unk5A6 = 0;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 10000;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk71D[gCurrentPinballGame->unk5A5 - 1] = 3;
|
||||
gCurrentPinballGame->unk5A4 = 1;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 10000;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk5AA = 4;
|
||||
}
|
||||
|
||||
res = 1;
|
||||
m4aSongNumStart(SE_UNKNOWN_0x145);
|
||||
sub_11B0(7);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk5AA == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk5A5++;
|
||||
if (gCurrentPinballGame->unk5A5 == 3)
|
||||
{
|
||||
gCurrentPinballGame->unk71D[gCurrentPinballGame->unk5A5 - 1] = 3;
|
||||
gCurrentPinballGame->unk5A4 = 2;
|
||||
gCurrentPinballGame->unk5A6 = 0;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 10000;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk71D[gCurrentPinballGame->unk5A5 - 1] = 3;
|
||||
gCurrentPinballGame->unk5A4 = 1;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 10000;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk5AA = 4;
|
||||
}
|
||||
|
||||
res = 1;
|
||||
m4aSongNumStart(SE_UNKNOWN_0x74);
|
||||
sub_11B0(7);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
void sub_1493C(void)
|
||||
{
|
||||
struct Vector16 vec1;
|
||||
struct Vector32 vec2;
|
||||
int squaredMagnitude;
|
||||
u16 angle;
|
||||
u8 temp_adjust;
|
||||
|
||||
vec1.x = gCurrentPinballGame->ball->positionQ1.x - 238;
|
||||
vec1.y = gCurrentPinballGame->ball->positionQ1.y - 558;
|
||||
squaredMagnitude = (vec1.x * vec1.x) + (vec1.y * vec1.y);
|
||||
|
||||
if (squaredMagnitude < 1764 && (gCurrentPinballGame->unk1E & 1) == 0)
|
||||
{
|
||||
angle = ArcTan2(-vec1.x, vec1.y);
|
||||
temp_adjust = 30;
|
||||
vec2.x = (temp_adjust * Cos(angle)) / 20000;
|
||||
vec2.y = (-temp_adjust * Sin(angle)) / 20000;
|
||||
gCurrentPinballGame->ball->velocity.x = ((vec2.x * 100) + (98 * gCurrentPinballGame->ball->velocity.x)) / 100;
|
||||
gCurrentPinballGame->ball->velocity.y = ((vec2.y * 100) + (98 * gCurrentPinballGame->ball->velocity.y)) / 100;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk5F4 < 20)
|
||||
{
|
||||
if (squaredMagnitude < 40)
|
||||
{
|
||||
gCurrentPinballGame->unk5F4++;
|
||||
gCurrentPinballGame->ball->scale = 0x100;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->ball->scale = 0x100;
|
||||
if (squaredMagnitude > 100)
|
||||
gCurrentPinballGame->unk5F4 = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk5F4 < 30)
|
||||
{
|
||||
gCurrentPinballGame->unk5F4++;
|
||||
gCurrentPinballGame->ball->scale = ((30 - gCurrentPinballGame->unk5F4) * 0x80) / 10 + 0x80;
|
||||
gCurrentPinballGame->ball->positionQ0.x = 119;
|
||||
gCurrentPinballGame->ball->positionQ0.y = 279;
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ0.x << 8;
|
||||
gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ0.y << 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk5F4 = 0;
|
||||
gCurrentPinballGame->unk25 = 4;
|
||||
if (gMain.selectedField == FIELD_RUBY)
|
||||
sub_1A98C();
|
||||
else
|
||||
sub_32914();
|
||||
|
||||
gCurrentPinballGame->unk22 = 7;
|
||||
gCurrentPinballGame->ball->scale = 0x80;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_14AF4(struct Vector16 r0, s16 r1, u16 *r2, s16 r3) {
|
||||
struct FlipperState* flipper;
|
||||
u16 res;
|
||||
int new_var;
|
||||
unsigned short ix;
|
||||
|
||||
res = 0;
|
||||
|
||||
ix = (r0.y * 96) + r0.x;
|
||||
flipper = &gCurrentPinballGame->flipper[r3];
|
||||
|
||||
flipper->unk5 = gUnknown_086ACDB8[r1 + (flipper->unk2 * 5)];
|
||||
|
||||
if (0xF & (&gUnknown_02031520.unk68[flipper->unk5 * 0x2400])[ix])
|
||||
{
|
||||
*r2 = 0xFFF0 & (&gUnknown_02031520.unk68[flipper->unk5 * 0x2400])[ix];
|
||||
if (r3 == 1)
|
||||
{
|
||||
new_var = 0x8000;
|
||||
*r2 = new_var - (*r2);
|
||||
}
|
||||
res = 1;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void sub_14B84(s32 arg0, s16 arg1, struct Vector16* arg2, u16 arg3)
|
||||
{
|
||||
u16 angle;
|
||||
|
||||
angle = gCurrentPinballGame->flipper[arg1].unk5;
|
||||
|
||||
if (gCurrentPinballGame->flipper[arg1].unk8 > 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk5C == 0)
|
||||
{
|
||||
u16 var0;
|
||||
s32 scale;
|
||||
s16 temp_r2;
|
||||
s16 temp_r5;
|
||||
|
||||
temp_r2 = gCurrentPinballGame->flipper[arg1].unk5;
|
||||
temp_r5 = (temp_r2 - 2) * 25;
|
||||
arg0 -= temp_r5;
|
||||
|
||||
if (arg0 < 2850)
|
||||
{
|
||||
var0 = 0x4800 - (arg0 - 2600) * 2048 / 600;
|
||||
scale = (arg0 - 2600) * 128 / 300 + 120;
|
||||
}
|
||||
else
|
||||
{
|
||||
var0 =
|
||||
gUnknown_086ACE2C[temp_r2][0] -
|
||||
((gUnknown_086ACE2C[temp_r2][1] * (arg0 -2600)) / 5400);
|
||||
scale = ((arg0 -2600) * 348 / 5400) + 406;
|
||||
}
|
||||
|
||||
if (arg1)
|
||||
var0 = 0x8000 - var0;
|
||||
|
||||
angle = (gCurrentPinballGame->ball->velocity.x * -0x600) / 0x80 +
|
||||
(gCurrentPinballGame->ball->unk8 * -0x180) / 0x100 +
|
||||
var0;
|
||||
gCurrentPinballGame->unk60.x = scale * Cos(angle) / 20000;
|
||||
gCurrentPinballGame->unk60.y = -scale * Sin(angle) / 20000;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk5C = 1;
|
||||
|
||||
if (arg1)
|
||||
arg2->x = -gCurrentPinballGame->unk60.x;
|
||||
else
|
||||
arg2->x = gCurrentPinballGame->unk60.x;
|
||||
|
||||
arg2->y = gCurrentPinballGame->unk60.y;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct Vector16 vec1;
|
||||
s32 scale;
|
||||
u16 angle2;
|
||||
|
||||
scale = arg0 / 20;
|
||||
vec1.x = scale * Cos(arg3) / 20000;
|
||||
vec1.y = -(scale * Sin(arg3)) / 20000;
|
||||
|
||||
arg2->x = vec1.x + arg2->x * 3 / 2;
|
||||
arg2->y = vec1.y + arg2->y * 3 / 2;
|
||||
|
||||
angle2 = ArcTan2(arg2->x, -arg2->y);
|
||||
arg2->x = scale * Cos(angle2) / 20000;
|
||||
arg2->y = -scale * Sin(angle2) / 20000;
|
||||
}
|
||||
}
|
||||
|
|
@ -15,15 +15,15 @@ void MainBoardProcess_7B_12524(void)
|
|||
struct BallState *currentBallState;
|
||||
struct SpriteGroup *spriteGroup;
|
||||
s16 r8;
|
||||
|
||||
|
||||
currentBallState = gCurrentPinballGame->ball;
|
||||
r8 = currentBallState->unkA >> 12;
|
||||
|
||||
|
||||
if (currentBallState->positionQ0.y == 340 && (currentBallState->positionQ0.x == 90 || currentBallState->positionQ0.x == 149))
|
||||
currentBallState->unkA = currentBallState->unkC;
|
||||
|
||||
currentBallState->unkC = currentBallState->unkA;
|
||||
|
||||
|
||||
if (!gCurrentPinballGame->unk5F7 && gCurrentPinballGame->ballUpgradeCounter > 0)
|
||||
{
|
||||
if (--gCurrentPinballGame->ballUpgradeCounter == 0)
|
||||
|
|
@ -31,11 +31,11 @@ void MainBoardProcess_7B_12524(void)
|
|||
if (gCurrentPinballGame->ballUpgradeType > BALL_UPGRADE_TYPE_POKE_BALL)
|
||||
{
|
||||
gCurrentPinballGame->ballUpgradeType--;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->ballUpgradeType > BALL_UPGRADE_TYPE_POKE_BALL)
|
||||
gCurrentPinballGame->ballUpgradeCounter = 3600;
|
||||
}
|
||||
|
||||
|
||||
DmaCopy16(3, gUnknown_08137E14[gCurrentPinballGame->ballUpgradeType], (void *)OBJ_PLTT + 0x20, 0x20);
|
||||
}
|
||||
}
|
||||
|
|
@ -50,22 +50,22 @@ void MainBoardProcess_7B_12524(void)
|
|||
|
||||
currentBallState->positionQ0.x = currentBallState->positionQ1.x / 2;
|
||||
currentBallState->positionQ0.y = currentBallState->positionQ1.y / 2;
|
||||
|
||||
|
||||
spriteGroup = gMain.unk44[0];
|
||||
|
||||
|
||||
if (spriteGroup->available)
|
||||
{
|
||||
SetMatrixScale(currentBallState->scale, currentBallState->scale, 0);
|
||||
|
||||
|
||||
spriteGroup->baseX = -(gCurrentPinballGame->unk4C + 7) + currentBallState->positionQ0.x - gCurrentPinballGame->unk2AA;
|
||||
spriteGroup->baseY = -(gCurrentPinballGame->unk4E + 7) + currentBallState->positionQ0.y - gCurrentPinballGame->unk5FC - gCurrentPinballGame->unkE6 + gCurrentPinballGame->unk166;
|
||||
|
||||
|
||||
currentBallState->screenPosition.x = spriteGroup->baseX;
|
||||
currentBallState->screenPosition.y = spriteGroup->baseY;
|
||||
|
||||
|
||||
oam = &spriteGroup->oam[0];
|
||||
oamData = &gOamBuffer[oam->oamId];
|
||||
|
||||
|
||||
if (currentBallState->oamPriority == 3)
|
||||
{
|
||||
if (currentBallState->positionQ0.y > 248)
|
||||
|
|
@ -81,12 +81,12 @@ void MainBoardProcess_7B_12524(void)
|
|||
|
||||
if (spriteGroup->baseY > 200)
|
||||
spriteGroup->baseY = 200;
|
||||
|
||||
|
||||
if (spriteGroup->baseY < -20)
|
||||
spriteGroup->baseY = -20;
|
||||
|
||||
oamData->x = oam->xOffset + spriteGroup->baseX;
|
||||
|
||||
|
||||
if (currentBallState->unk0)
|
||||
oamData->y = 200;
|
||||
else
|
||||
|
|
@ -98,16 +98,16 @@ void MainBoardProcess_7B_12524(void)
|
|||
if (spriteGroup->available)
|
||||
{
|
||||
SetMatrixScale(currentBallState->scale, currentBallState->scale, 0);
|
||||
|
||||
|
||||
spriteGroup->baseX = -(gCurrentPinballGame->unk4C + 7) + currentBallState->positionQ0.x - gCurrentPinballGame->unk2AA;
|
||||
spriteGroup->baseY = -(gCurrentPinballGame->unk4E + 7) + currentBallState->positionQ0.y - gCurrentPinballGame->unk5FC - gCurrentPinballGame->unkE6 + gCurrentPinballGame->unk166;
|
||||
|
||||
|
||||
currentBallState->screenPosition.x = spriteGroup->baseX;
|
||||
currentBallState->screenPosition.y = spriteGroup->baseY;
|
||||
|
||||
|
||||
oam = &spriteGroup->oam[0];
|
||||
oamData = &gOamBuffer[oam->oamId];
|
||||
|
||||
|
||||
if (currentBallState->oamPriority == 3)
|
||||
{
|
||||
if (currentBallState->positionQ0.y > 248)
|
||||
|
|
@ -117,12 +117,12 @@ void MainBoardProcess_7B_12524(void)
|
|||
}
|
||||
else
|
||||
oamData->priority = currentBallState->oamPriority;
|
||||
|
||||
|
||||
DmaCopy16(3, gUnknown_083BB16C[r8 + gCurrentPinballGame->ballUpgradeType * 17], (void *)0x6010400, 0x80);
|
||||
|
||||
if (spriteGroup->baseY > 200)
|
||||
spriteGroup->baseY = 200;
|
||||
|
||||
|
||||
if (spriteGroup->baseY < -20)
|
||||
spriteGroup->baseY = -20;
|
||||
|
||||
|
|
@ -142,21 +142,21 @@ void MainBoardProcess_7B_12524(void)
|
|||
|
||||
gCurrentPinballGame->unkD0[0].x = currentBallState->positionQ0.x - 7;
|
||||
gCurrentPinballGame->unkD0[0].y = currentBallState->positionQ0.y - 7;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk71)
|
||||
{
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
spriteGroup = gMain.unk44[i + 1];
|
||||
|
||||
|
||||
if (spriteGroup->available)
|
||||
{
|
||||
oam = &spriteGroup->oam[0];
|
||||
oamData = &gOamBuffer[oam->oamId];
|
||||
|
||||
|
||||
oamData->priority = currentBallState->oamPriority;
|
||||
oamData->x = oam->xOffset + (gCurrentPinballGame->unkD0[(i + 1) * 2].x - gCurrentPinballGame->unk4C);
|
||||
|
||||
|
||||
if (i == 0)
|
||||
oamData->y = gCurrentPinballGame->unkD0[2].y - gCurrentPinballGame->unk4E + oam->yOffset;
|
||||
else if (i == 1)
|
||||
|
|
@ -179,12 +179,12 @@ void MainBoardProcess_7B_12524(void)
|
|||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
spriteGroup = gMain.unk44[i + 1];
|
||||
|
||||
|
||||
if (spriteGroup->available)
|
||||
{
|
||||
oam = &spriteGroup->oam[0];
|
||||
oamData = &gOamBuffer[oam->oamId];
|
||||
|
||||
|
||||
oamData->priority = currentBallState->oamPriority;
|
||||
oamData->x = oam->xOffset + (gCurrentPinballGame->unkD0[(i + 1) * 2].x - gCurrentPinballGame->unk4C);
|
||||
oamData->y = 200;
|
||||
|
|
@ -198,7 +198,7 @@ void MainBoardProcess_7B_12524(void)
|
|||
}
|
||||
|
||||
spriteGroup = gMain.unk44[43];
|
||||
|
||||
|
||||
if (spriteGroup->available)
|
||||
{
|
||||
s8 newIx;
|
||||
|
|
@ -215,14 +215,14 @@ void MainBoardProcess_7B_12524(void)
|
|||
|
||||
newIx = gCurrentPinballGame->unk6E;
|
||||
DmaCopy16(3, gUnknown_083BD36C[newIx], (void *)0x6011EE0, 0x200);
|
||||
|
||||
|
||||
oam = &spriteGroup->oam[0];
|
||||
|
||||
|
||||
gOamBuffer[oam->oamId].x = oam->xOffset + spriteGroup->baseX;
|
||||
gOamBuffer[oam->oamId].y = oam->yOffset + spriteGroup->baseY;
|
||||
|
||||
|
||||
gOamBuffer[oam->oamId].priority = currentBallState->oamPriority;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk71C < 14)
|
||||
gMain.unk44[43]->available = 0;
|
||||
}
|
||||
|
|
@ -400,12 +400,12 @@ void BonusBoardProcess_7B_12BF8()
|
|||
{
|
||||
if (gCurrentPinballGame->unk5F7 == 0 && gCurrentPinballGame->ballUpgradeCounter != 0)
|
||||
{
|
||||
gCurrentPinballGame->ballUpgradeCounter -= 1;
|
||||
gCurrentPinballGame->ballUpgradeCounter--;
|
||||
if (gCurrentPinballGame->ballUpgradeCounter == 0)
|
||||
{
|
||||
if (gCurrentPinballGame->ballUpgradeType > BALL_UPGRADE_TYPE_POKE_BALL)
|
||||
{
|
||||
gCurrentPinballGame->ballUpgradeType -= 1;
|
||||
gCurrentPinballGame->ballUpgradeType--;
|
||||
if (gCurrentPinballGame->ballUpgradeType > BALL_UPGRADE_TYPE_POKE_BALL)
|
||||
{
|
||||
gCurrentPinballGame->ballUpgradeCounter = 60 * 60;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -228,7 +228,7 @@ void sub_47670(void)
|
|||
m4aSongNumStart(SE_UNKNOWN_0xA4);
|
||||
for (i = 0; i < 3; i++)
|
||||
for (j = 0; j < 20; j++)
|
||||
gCurrentPinballGame->unk63C[i][j] = 0;
|
||||
gCurrentPinballGame->unk63C[i][j] = 0;
|
||||
}
|
||||
else if (gMain.unk12 == 1)
|
||||
{
|
||||
|
|
@ -629,21 +629,21 @@ void sub_48190(void)
|
|||
gCurrentPinballGame->unk62C * 500000 +
|
||||
gCurrentPinballGame->unk62D * 100000 +
|
||||
gCurrentPinballGame->unk62E * 100000;
|
||||
|
||||
|
||||
gCurrentPinballGame->unk634 = 0;
|
||||
gMain.unk12 = 150;
|
||||
|
||||
|
||||
for (j = 0; j < 20; j++)
|
||||
gCurrentPinballGame->unk63C[0][j] = 1;
|
||||
for (j = 0; j < 20; j++)
|
||||
gCurrentPinballGame->unk63C[1][j] = 1;
|
||||
for (j = 0; j < 20; j++)
|
||||
gCurrentPinballGame->unk63C[2][j] = 1;
|
||||
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
for (j = 0; j < 20; j++)
|
||||
gCurrentPinballGame->unk678[i][j] = gUnknown_086B0128[gCurrentPinballGame->unk638][i][j];
|
||||
|
||||
|
||||
sp14 = 1;
|
||||
}
|
||||
else
|
||||
|
|
@ -778,7 +778,7 @@ void sub_48190(void)
|
|||
value = 0;
|
||||
multiplier = 0;
|
||||
if (gCurrentPinballGame->unk63A == 212 || sp14 != 0)
|
||||
{
|
||||
{
|
||||
switch (gCurrentPinballGame->unk638)
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -919,7 +919,7 @@ void sub_48190(void)
|
|||
if (value / 100000000 > 0)
|
||||
{
|
||||
value -= 100000000;
|
||||
var4 += 1;
|
||||
var4++;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk6B8 = var4;
|
||||
|
|
@ -1011,7 +1011,7 @@ void sub_48190(void)
|
|||
sp0[i] = 0;
|
||||
for (j = 0; j < 20; j++)
|
||||
gCurrentPinballGame->unk678[2][j] = gUnknown_086B0128[gCurrentPinballGame->unk638][2][j];
|
||||
|
||||
|
||||
var4 = gCurrentPinballGame->unk6B8;
|
||||
value = gCurrentPinballGame->unk6B4;
|
||||
sp0[10] = (var4 % 1000) / 100;
|
||||
|
|
|
|||
|
|
@ -340,7 +340,7 @@ void Sio32IDIntr(void)
|
|||
gUnknown_02002808.send_id = 0x8000;
|
||||
}
|
||||
gUnknown_02002808.recv_id = ~receiverChunk;
|
||||
REG_SIODATA32 =
|
||||
REG_SIODATA32 =
|
||||
(gUnknown_02002808.send_id << ((1 - gUnknown_02002808.MS_mode) << 4)) +
|
||||
(gUnknown_02002808.recv_id << (gUnknown_02002808.MS_mode << 4));
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ void sub_CFD4(void)
|
|||
int i, j, k;
|
||||
for(i = 0; i < MAIN_FIELD_COUNT; i++)
|
||||
{
|
||||
for(j = 0; j < NUM_HIGH_SCORES; j++)
|
||||
for(j = 0; j < NUM_HIGH_SCORES; j++)
|
||||
{
|
||||
for(k = 0; k < HIGH_SCORE_NAME_LENGTH + 2; k++) // ? use an array count instead?
|
||||
gUnknown_0202C610[i][j].data.raw[k] = gMain_saveData.highScores[i][j].data.raw[k];
|
||||
|
|
@ -211,7 +211,7 @@ void HighScore_State1_D20C(void)
|
|||
}
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_0201A4B8 -= 1;
|
||||
gUnknown_0201A4B8--;
|
||||
|
||||
// TODO: FAKEMATCH - Seth
|
||||
temp = gUnknown_02002858.unk18;
|
||||
|
|
@ -248,7 +248,7 @@ void HighScore_State1_D20C(void)
|
|||
break;
|
||||
}
|
||||
|
||||
gUnknown_02002858.unk18 += 1;
|
||||
gUnknown_02002858.unk18++;
|
||||
sub_E860();
|
||||
}
|
||||
|
||||
|
|
@ -2185,7 +2185,7 @@ void sub_F8B0(u32 arg0, u32 arg1, s16 arg2)
|
|||
u32 r3;
|
||||
if(arg0 == 0)
|
||||
{
|
||||
if(arg1 == 0)
|
||||
if(arg1 == 0)
|
||||
{
|
||||
r3 = (0 * 2 + 2) * 32 + 12;
|
||||
for(i = 0; i < 15; i++)
|
||||
|
|
@ -2226,7 +2226,7 @@ void sub_F8B0(u32 arg0, u32 arg1, s16 arg2)
|
|||
}
|
||||
else
|
||||
{
|
||||
if(arg1 == 0)
|
||||
if(arg1 == 0)
|
||||
{
|
||||
r3 = (0 * 2 + 2) * 32 + 32 * 32 + 10;
|
||||
for(i = 0; i < 15; i++)
|
||||
|
|
@ -2273,7 +2273,7 @@ void sub_FAE8(u32 arg0, u32 arg1, s16 arg2)
|
|||
u32 r3;
|
||||
if(arg0 == 0)
|
||||
{
|
||||
if(arg1 == 0)
|
||||
if(arg1 == 0)
|
||||
{
|
||||
r3 = (0 * 2 + 2) * 32 + 12;
|
||||
for(i = 0; i < 15; i++)
|
||||
|
|
@ -2314,7 +2314,7 @@ void sub_FAE8(u32 arg0, u32 arg1, s16 arg2)
|
|||
}
|
||||
else
|
||||
{
|
||||
if(arg1 == 0)
|
||||
if(arg1 == 0)
|
||||
{
|
||||
r3 = (0 * 2 + 2) * 32 + 32 * 32 + 10;
|
||||
for(i = 0; i < 15; i++)
|
||||
|
|
@ -2359,7 +2359,7 @@ s8 sub_FD20(void)
|
|||
{
|
||||
int i;
|
||||
s16 sp0[NUM_SPECIES];
|
||||
|
||||
|
||||
for(i = 0; i < NUM_SPECIES; i++)
|
||||
sp0[i] = gMain_saveData.pokedexFlags[i];
|
||||
|
||||
|
|
@ -2379,7 +2379,7 @@ void sub_FD5C(void (*func)(void))
|
|||
DmaFill16(3, 0x7FFF, gUnknown_0201A520[0], PLTT_SIZE);
|
||||
DmaCopy16(3, gUnknown_0201A520[0], gUnknown_0201A520[2], PLTT_SIZE);
|
||||
DmaCopy16(3, gUnknown_0201A520[2], (void*)PLTT, PLTT_SIZE);
|
||||
|
||||
|
||||
UnblankLCD();
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
|
|
@ -2439,7 +2439,7 @@ void sub_FEB8(u8 * arg0, u8 * arg1, void (*func)(void))
|
|||
|
||||
UnblankLCD();
|
||||
gMain.dispcntBackup = REG_DISPCNT;
|
||||
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
if (func != NULL)
|
||||
|
|
@ -2501,13 +2501,13 @@ void sub_1001C(u16 arg0)
|
|||
|
||||
arg0 &= ~3;
|
||||
arg0 += 4;
|
||||
|
||||
|
||||
while(var0 < var1)
|
||||
{
|
||||
r[0] = gUnknown_0201A520[0][var0] & 0x1F;
|
||||
g[0] = (gUnknown_0201A520[0][var0] & 0x3E0) >> 5;
|
||||
b[0] = (gUnknown_0201A520[0][var0] & 0x7C00) >> 10;
|
||||
|
||||
|
||||
r[1] = gUnknown_0201A520[1][var0] & 0x1F;
|
||||
g[1] = (gUnknown_0201A520[1][var0] & 0x3E0) >> 5;
|
||||
b[1] = (gUnknown_0201A520[1][var0] & 0x7C00) >> 10;
|
||||
|
|
@ -2526,7 +2526,7 @@ void sub_1001C(u16 arg0)
|
|||
r[0] += ((r[1] - r[0]) * arg0) >> 5;
|
||||
else
|
||||
r[0] -= ((r[0] - r[1]) * arg0) >> 5;
|
||||
|
||||
|
||||
gUnknown_0201A520[2][var0] = (b[0] << 10) | (g[0] << 5) | r[0];
|
||||
var0++;
|
||||
}
|
||||
|
|
@ -2537,16 +2537,16 @@ void sub_10170(u8 * pal, u8 * dest, u16 arg2, u16 arg3)
|
|||
u16 i;
|
||||
u16 b[2];
|
||||
u16 g[2];
|
||||
u16 r[2];
|
||||
u16 r[2];
|
||||
DmaCopy16(3, pal, gUnknown_0201A520[0], arg2);
|
||||
DmaFill16(3, 0, gUnknown_0201A520[1], arg2);
|
||||
|
||||
|
||||
for(i = 0; i < arg2; i++)
|
||||
{
|
||||
r[0] = gUnknown_0201A520[0][i] & 0x1F;
|
||||
g[0] = (gUnknown_0201A520[0][i] & 0x3E0) >> 5;
|
||||
b[0] = (gUnknown_0201A520[0][i] & 0x7C00) >> 10;
|
||||
|
||||
|
||||
r[1] = gUnknown_0201A520[1][i] & 0x1F;
|
||||
g[1] = (gUnknown_0201A520[1][i] & 0x3E0) >> 5;
|
||||
b[1] = (gUnknown_0201A520[1][i] & 0x7C00) >> 10;
|
||||
|
|
@ -2554,18 +2554,18 @@ void sub_10170(u8 * pal, u8 * dest, u16 arg2, u16 arg3)
|
|||
if(b[0] > b[1])
|
||||
b[0] -= (b[0] * arg3) >> 5;
|
||||
else
|
||||
b[0] = b[1];
|
||||
b[0] = b[1];
|
||||
|
||||
if(g[0] > g[1])
|
||||
g[0] -= (g[0] * arg3) >> 5;
|
||||
else
|
||||
g[0] = g[1];
|
||||
g[0] = g[1];
|
||||
|
||||
if(r[0] > r[1])
|
||||
r[0] -= (r[0] * arg3) >> 5;
|
||||
else
|
||||
r[0] = r[1];
|
||||
|
||||
r[0] = r[1];
|
||||
|
||||
gUnknown_0201A520[2][i] = (b[0] << 10) | (g[0] << 5) | r[0];
|
||||
}
|
||||
DmaCopy16(3, gUnknown_0201A520[2], dest, arg2);
|
||||
|
|
@ -2576,16 +2576,16 @@ void sub_102A8(u8 * pal, u8 * dest, u16 arg2, u16 arg3)
|
|||
u16 i;
|
||||
u16 b[2];
|
||||
u16 g[2];
|
||||
u16 r[2];
|
||||
u16 r[2];
|
||||
DmaCopy16(3, pal, gUnknown_0201A520[0], arg2);
|
||||
DmaFill16(3, 0x7FFF, gUnknown_0201A520[1], arg2);
|
||||
|
||||
|
||||
for(i = 0; i < arg2; i++)
|
||||
{
|
||||
r[0] = gUnknown_0201A520[0][i] & 0x1F;
|
||||
g[0] = (gUnknown_0201A520[0][i] & 0x3E0) >> 5;
|
||||
b[0] = (gUnknown_0201A520[0][i] & 0x7C00) >> 10;
|
||||
|
||||
|
||||
r[1] = gUnknown_0201A520[1][i] & 0x1F;
|
||||
g[1] = (gUnknown_0201A520[1][i] & 0x3E0) >> 5;
|
||||
b[1] = (gUnknown_0201A520[1][i] & 0x7C00) >> 10;
|
||||
|
|
@ -2604,7 +2604,7 @@ void sub_102A8(u8 * pal, u8 * dest, u16 arg2, u16 arg3)
|
|||
r[0] += ((r[1] - r[0]) * arg3) >> 5;
|
||||
else
|
||||
r[0] -= ((r[0] - r[1]) * arg3) >> 5;
|
||||
|
||||
|
||||
gUnknown_0201A520[2][i] = (b[0] << 10) | (g[0] << 5) | r[0];
|
||||
}
|
||||
DmaCopy16(3, gUnknown_0201A520[2], dest, arg2);
|
||||
|
|
|
|||
32
src/intro.c
32
src/intro.c
|
|
@ -302,7 +302,7 @@ void sub_978C(void)
|
|||
if (gUnknown_0202BF10 >= gUnknown_086A77A8[gUnknown_0202C5A8][gUnknown_0202A578][1])
|
||||
{
|
||||
m4aSongNumStart(gUnknown_086A77A8[gUnknown_0202C5A8][gUnknown_0202A578][0]);
|
||||
gUnknown_0202A578 = gUnknown_0202A578 + 1;
|
||||
gUnknown_0202A578++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -430,7 +430,7 @@ void sub_9AB8(void)
|
|||
gUnknown_0201A450[3].unk2 -= 0xD;
|
||||
|
||||
gUnknown_0202ADA0[0x12] -= 0x10;
|
||||
gUnknown_0202ADA0[0x13] += 1;
|
||||
gUnknown_0202ADA0[0x13]++;
|
||||
gUnknown_0202ADA0[0x6] -= 0x10;
|
||||
|
||||
gUnknown_0201A450[2].unk0 -= 0xE;
|
||||
|
|
@ -1983,29 +1983,29 @@ void sub_C4F0(void)
|
|||
s32 j;
|
||||
s8 cVar1;
|
||||
s8 cVar2;
|
||||
|
||||
|
||||
|
||||
sg0 = &gMain.spriteGroups[0];
|
||||
sg1 = &gMain.spriteGroups[1];
|
||||
|
||||
|
||||
spriteGroups[0] = &gMain.spriteGroups[(5 * gUnknown_0201A450[2].unk8) + 2];
|
||||
spriteGroups[1] = &gMain.spriteGroups[(5 * gUnknown_0201A450[3].unk8) + 3];
|
||||
spriteGroups[2] = &gMain.spriteGroups[(5 * gUnknown_0201A450[4].unk8) + 4];
|
||||
spriteGroups[3] = &gMain.spriteGroups[(5 * gUnknown_0201A450[5].unk8) + 5];
|
||||
spriteGroups[4] = &gMain.spriteGroups[(5 * gUnknown_0201A450[6].unk8) + 6];
|
||||
|
||||
|
||||
|
||||
sg0->available = gUnknown_0201A450[0].unkC;
|
||||
sg1->available = 1;
|
||||
|
||||
|
||||
spriteGroups[0]->available = gUnknown_0201A450[2].unkC;
|
||||
spriteGroups[1]->available = gUnknown_0201A450[3].unkC;
|
||||
spriteGroups[2]->available = gUnknown_0201A450[4].unkC;
|
||||
spriteGroups[3]->available = gUnknown_0201A450[5].unkC;
|
||||
spriteGroups[4]->available = gUnknown_0201A450[6].unkC;
|
||||
|
||||
|
||||
LoadSpriteSets(gUnknown_086A7C24, 0x11, gMain.spriteGroups);
|
||||
|
||||
|
||||
if (sg0->available == 1)
|
||||
{
|
||||
sg0->baseX = gUnknown_0201A450[0].unk0;
|
||||
|
|
@ -2015,7 +2015,7 @@ void sub_C4F0(void)
|
|||
gOamBuffer[oamData->oamId].x = oamData->xOffset + sg0->baseX;
|
||||
gOamBuffer[oamData->oamId].y = oamData->yOffset + sg0->baseY;
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
if (spriteGroups[i]->available == 1)
|
||||
|
|
@ -2031,14 +2031,14 @@ void sub_C4F0(void)
|
|||
cVar1 = gUnknown_086A7C68[i].unk0;
|
||||
cVar2 = gUnknown_086A7C68[i].unk1;
|
||||
}
|
||||
|
||||
|
||||
gUnknown_0201A450[2 + i].unk0 += cVar1;
|
||||
gUnknown_0201A450[2 + i].unk2 += cVar2;
|
||||
spriteGroups[i]->baseX = gUnknown_0201A450[2 + i].unk0;
|
||||
spriteGroups[i]->baseY = gUnknown_0201A450[2 + i].unk2;
|
||||
|
||||
|
||||
p = gUnknown_086A7C24[( 2 + i) + (5 * gUnknown_0201A450[2 + i].unk8)];
|
||||
|
||||
|
||||
for (j = 0; j < p->count; j++)
|
||||
{
|
||||
oamData = &spriteGroups[i]->oam[j];
|
||||
|
|
@ -2048,7 +2048,7 @@ void sub_C4F0(void)
|
|||
}
|
||||
|
||||
gUnknown_0201A450[2 + i].unkA++;
|
||||
|
||||
|
||||
if (gUnknown_0201A450[2 + i].unkA > 0x4)
|
||||
{
|
||||
gUnknown_0201A450[2 + i].unkA = 0;
|
||||
|
|
@ -2064,7 +2064,7 @@ void sub_C4F0(void)
|
|||
{
|
||||
sg1->baseX = gUnknown_0201A450[1].unk0;
|
||||
sg1->baseY = gUnknown_0201A450[1].unk2;
|
||||
|
||||
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
oamData = &sg1->oam[j];
|
||||
|
|
@ -2074,10 +2074,10 @@ void sub_C4F0(void)
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
sg1->available = 0;
|
||||
sg0->available = 0;
|
||||
|
||||
|
||||
spriteGroups[0]->available = 0;
|
||||
spriteGroups[1]->available = 0;
|
||||
spriteGroups[2]->available = 0;
|
||||
|
|
|
|||
|
|
@ -24,8 +24,6 @@ extern const VoidFunc gUnknown_086B085C[];
|
|||
extern struct SpriteGroup *gMainFieldSpriteGroups[][60];
|
||||
extern struct SpriteGroup *gBonusFieldSpriteGroups[][30];
|
||||
extern const u8 gUnknown_08158284[];
|
||||
extern const u8 gUnknown_08395A4C[];
|
||||
extern const u8 gUnknown_08397E6C[];
|
||||
extern const u8 gUnknown_083A704C[];
|
||||
extern const u8 gUnknown_0848FD8C[];
|
||||
extern const u8 gUnknown_081428D4[];
|
||||
|
|
@ -1356,28 +1354,28 @@ void sub_4BC34(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_4C290(void)
|
||||
void sub_4C290(void)
|
||||
{
|
||||
s16 i;
|
||||
s16 var0;
|
||||
|
||||
|
||||
sub_28AE0();
|
||||
sub_28BFC();
|
||||
|
||||
for (i = 0; i <= 1; i++)
|
||||
for (i = 0; i <= 1; i++)
|
||||
{
|
||||
var0 = gCurrentPinballGame->unk13BC[i].unk0 / 2;
|
||||
var0 = gCurrentPinballGame->flipper[i].position / 2;
|
||||
DmaCopy16(3, gUnknown_083FE44C[var0], ((i * 0x200) + 0x06010000), 0x200);
|
||||
}
|
||||
|
||||
|
||||
var0 = gCurrentPinballGame->ball->unkA / 0x1000;
|
||||
DmaCopy16(3, gUnknown_083BB16C[var0], 0x06010400, 0x80);
|
||||
|
||||
for (i = 0; i <= 1; i++)
|
||||
for (i = 0; i <= 1; i++)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_084C07EC + ((var0 =gCurrentPinballGame->unk744[i]) * 0x180), 0x06010480 + (i * 0x180), 0x180);
|
||||
}
|
||||
|
||||
|
||||
var0 = gCurrentPinballGame->unk1E5;
|
||||
DmaCopy16(3, gUnknown_084FA48C[var0 = gCurrentPinballGame->unk1E5], 0x06010780, 0x120);
|
||||
var0 = gCurrentPinballGame->unk1CA;
|
||||
|
|
@ -1385,32 +1383,32 @@ void sub_4C290(void)
|
|||
|
||||
for (i = 0; i <= 1; i++)
|
||||
{
|
||||
switch (gCurrentPinballGame->unk747[i])
|
||||
switch (gCurrentPinballGame->unk747[i])
|
||||
{
|
||||
case 0:
|
||||
DmaCopy16(3, gUnknown_0848D68C[gCurrentPinballGame->unk749[i]], 0x06010CA0 + (i * 0x300), 0x300);
|
||||
gCurrentPinballGame->ball += 0; //TODO: Dumb match is still a match...
|
||||
break;
|
||||
case 9:
|
||||
if (gCurrentPinballGame->unk25C > 0)
|
||||
if (gCurrentPinballGame->unk25C > 0)
|
||||
{
|
||||
if (gMain_saveData.pokedexFlags[gCurrentPinballGame->unk59A] == 0)
|
||||
if (gMain_saveData.pokedexFlags[gCurrentPinballGame->unk59A] == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk749[i] = 205;
|
||||
DmaCopy16(3, gMonPortraitGroupPals[gCurrentPinballGame->unk749[i] / 15] + (gCurrentPinballGame->unk749[i] % 15) * 0x20, 0x050003A0, 0x20);
|
||||
}
|
||||
else if (gMain_saveData.pokedexFlags[gCurrentPinballGame->unk59A] <= 3)
|
||||
}
|
||||
else if (gMain_saveData.pokedexFlags[gCurrentPinballGame->unk59A] <= 3)
|
||||
{
|
||||
gCurrentPinballGame->unk749[i] = gCurrentPinballGame->unk59A;
|
||||
DmaCopy16(3, gMonPortraitGroupPals[0] + 15 * 0x20, 0x050003A0, 0x20);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk749[i] = gCurrentPinballGame->unk59A;
|
||||
DmaCopy16(3, gMonPortraitGroupPals[gCurrentPinballGame->unk749[i] / 15] + (gCurrentPinballGame->unk749[i] % 15) * 0x20, 0x050003A0, 0x20);
|
||||
}
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk749[i] = gCurrentPinballGame->currentSpecies;
|
||||
DmaCopy16(3, gMonPortraitGroupPals[gCurrentPinballGame->unk749[i] / 15] + ((gCurrentPinballGame->unk749[i] % 15) * 0x20), 0x050003A0, 0x20);
|
||||
|
|
@ -1429,29 +1427,29 @@ void sub_4C290(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk13 == 4)
|
||||
if (gCurrentPinballGame->unk13 == 4)
|
||||
{
|
||||
switch (gCurrentPinballGame->unk17)
|
||||
{
|
||||
case 7:
|
||||
case 8:
|
||||
if ((u32) gCurrentPinballGame->unk5A9 > 4)
|
||||
if ((u32) gCurrentPinballGame->unk5A9 > 4)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_02031060, 0x06010CA0, 0x480);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
DmaCopy16(3, gUnknown_02030760, 0x06010CA0, 0x480);
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (gCurrentPinballGame->unk5A8 <= 31)
|
||||
if (gCurrentPinballGame->unk5A8 <= 31)
|
||||
{
|
||||
if (gCurrentPinballGame->unk5A9 > 4)
|
||||
if (gCurrentPinballGame->unk5A9 > 4)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_02031060, 0x06010CA0, 0x480);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
DmaCopy16(3, gUnknown_02030760, 0x06010CA0, 0x480);
|
||||
}
|
||||
|
|
@ -1460,28 +1458,28 @@ void sub_4C290(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk13 == 8)
|
||||
if (gCurrentPinballGame->unk13 == 8)
|
||||
{
|
||||
switch (gCurrentPinballGame->unk17)
|
||||
switch (gCurrentPinballGame->unk17)
|
||||
{
|
||||
case 2:
|
||||
if (gCurrentPinballGame->unk5A9 > 4U)
|
||||
if (gCurrentPinballGame->unk5A9 > 4U)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_02031060, 0x06010CA0, 0x480);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
DmaCopy16(3, gUnknown_02030760, 0x06010CA0, 0x480);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gCurrentPinballGame->unk5A8 <= 31)
|
||||
if (gCurrentPinballGame->unk5A8 <= 31)
|
||||
{
|
||||
if (gCurrentPinballGame->unk5A9 > 4U)
|
||||
if (gCurrentPinballGame->unk5A9 > 4U)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_02031060, 0x06010CA0, 0x480);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
DmaCopy16(3, gUnknown_02030760, 0x06010CA0, 0x480);
|
||||
}
|
||||
|
|
|
|||
3319
src/pokedex.c
3319
src/pokedex.c
File diff suppressed because it is too large
Load Diff
1241
src/rom_14740.c
1241
src/rom_14740.c
File diff suppressed because it is too large
Load Diff
|
|
@ -17,13 +17,13 @@ void sub_1A0F4(void)
|
|||
gCurrentPinballGame->unk5FA = 1;
|
||||
if (gCurrentPinballGame->unkEA != 0)
|
||||
{
|
||||
gCurrentPinballGame->unkEA -= 1;
|
||||
gCurrentPinballGame->unkEA--;
|
||||
}
|
||||
else if (gCurrentPinballGame->unkEE == 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unkEC != 0)
|
||||
{
|
||||
gCurrentPinballGame->unkEC -= 1;
|
||||
gCurrentPinballGame->unkEC--;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -42,7 +42,7 @@ void sub_1A0F4(void)
|
|||
}
|
||||
else if (gCurrentPinballGame->unkEC != 0)
|
||||
{
|
||||
gCurrentPinballGame->unkEC -= 1;
|
||||
gCurrentPinballGame->unkEC--;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -204,7 +204,7 @@ void sub_1A2C0(void)
|
|||
{
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[2] + 0x40, (void *)(OBJ_PLTT + 0x40), 0xE0);
|
||||
}
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[2] + 0x140, (void *)(OBJ_PLTT + 0x140), 0x60);
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[2] + 0x140, (void *)(OBJ_PLTT + 0x140), 0x60);
|
||||
gCurrentPinballGame->unk6F = 2;
|
||||
}
|
||||
}
|
||||
|
|
@ -231,7 +231,7 @@ void sub_1A2C0(void)
|
|||
{
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[1] + 0x40, (void *)(OBJ_PLTT + 0x40), 0xE0);
|
||||
}
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[1] + 0x140, (void *)(OBJ_PLTT + 0x140), 0x60);
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[1] + 0x140, (void *)(OBJ_PLTT + 0x140), 0x60);
|
||||
gCurrentPinballGame->unk6F = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -269,7 +269,7 @@ void sub_1A2C0(void)
|
|||
{
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[1] + 0x40, (void *)(OBJ_PLTT + 0x40), 0xE0);
|
||||
}
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[1] + 0x140, (void *)(OBJ_PLTT + 0x140), 0x60);
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[1] + 0x140, (void *)(OBJ_PLTT + 0x140), 0x60);
|
||||
gCurrentPinballGame->unk6F = 1;
|
||||
gCurrentPinballGame->unk70 = 1;
|
||||
}
|
||||
|
|
@ -296,7 +296,7 @@ void sub_1A2C0(void)
|
|||
{
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[0] + 0x40, (void *)(OBJ_PLTT + 0x40), 0xE0);
|
||||
}
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[0] + 0x140, (void *)(OBJ_PLTT + 0x140), 0x60);
|
||||
DmaCopy16(3, gUnknown_02031520.unk14.unk2C[0] + 0x140, (void *)(OBJ_PLTT + 0x140), 0x60);
|
||||
gCurrentPinballGame->unk6F = 0;
|
||||
gCurrentPinballGame->unk70 = 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ void sub_22D54(void);
|
|||
|
||||
|
||||
void sub_1A98C(void)
|
||||
{
|
||||
{
|
||||
if (gMain.unkF != 0)
|
||||
return;
|
||||
|
||||
|
|
@ -62,18 +62,18 @@ void sub_1A9E8(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_1AA38(void)
|
||||
void sub_1AA38(void)
|
||||
{
|
||||
if (gCurrentPinballGame->unk72F > 1)
|
||||
{
|
||||
sub_19B64(4);
|
||||
}
|
||||
|
||||
|
||||
gCurrentPinballGame->unk5FC = 0;
|
||||
gCurrentPinballGame->unk5FB = 0;
|
||||
gCurrentPinballGame->unk5FE = 0;
|
||||
gCurrentPinballGame->unk28 = 113;
|
||||
|
||||
|
||||
m4aSongNumStart(SE_UNKNOWN_0xCE);
|
||||
gCurrentPinballGame->scoreAddedInFrame = 50000;
|
||||
|
||||
|
|
@ -87,7 +87,7 @@ void sub_1AA38(void)
|
|||
* Note: this *does not* affect the start of the catch mode itself.
|
||||
* When this function is nulled out at sub_1A9E8, the banner *doesn't* show, and
|
||||
* the ball bounces off the sharpedo. However, the grid still shows a picked mon,
|
||||
* and the mode otherwise works mostly normally, with the exception of affecting
|
||||
* and the mode otherwise works mostly normally, with the exception of affecting
|
||||
* the 'tilt' behavior, and the colision with the cyndaquil pushback.
|
||||
*/
|
||||
void sub_1AAA0(void)
|
||||
|
|
@ -95,11 +95,11 @@ void sub_1AAA0(void)
|
|||
if (gCurrentPinballGame->unk28) //Countdown timer; ball grabbed/held while banner shows
|
||||
{
|
||||
gCurrentPinballGame->unk28--;
|
||||
if (gCurrentPinballGame->unk28 > 100)
|
||||
if (gCurrentPinballGame->unk28 > 100)
|
||||
{
|
||||
gCurrentPinballGame->unk5F7 = 1;
|
||||
gCurrentPinballGame->unk1F = 1;
|
||||
|
||||
|
||||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
gCurrentPinballGame->ball->velocity.y = 0;
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
|
|
@ -107,7 +107,7 @@ void sub_1AAA0(void)
|
|||
if (gCurrentPinballGame->unk28 > 108)
|
||||
{
|
||||
gCurrentPinballGame->unk5FA = 1;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk28 > 110)
|
||||
{
|
||||
gCurrentPinballGame->ball->positionQ0.x = 195;
|
||||
|
|
@ -120,7 +120,7 @@ void sub_1AAA0(void)
|
|||
}
|
||||
//Presumed controling either the message board 'state'/'tile'
|
||||
// or the sharpedo animation 'state'/tile.
|
||||
gCurrentPinballGame->unk2F4 =6;
|
||||
gCurrentPinballGame->unk2F4 =6;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk28 > 104)
|
||||
{
|
||||
|
|
@ -128,7 +128,7 @@ void sub_1AAA0(void)
|
|||
gCurrentPinballGame->ball->positionQ0.y = 219;
|
||||
gCurrentPinballGame->unk2F4 = 7;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->ball->unk0 = 1;
|
||||
gCurrentPinballGame->unk2F4 = 8;
|
||||
|
|
@ -177,14 +177,14 @@ void sub_1AAA0(void)
|
|||
gCurrentPinballGame->unk2F4 = 16;
|
||||
}
|
||||
}
|
||||
else if (gCurrentPinballGame->unk28 > 18)
|
||||
else if (gCurrentPinballGame->unk28 > 18)
|
||||
{
|
||||
gCurrentPinballGame->ball->positionQ0.x = 193;
|
||||
gCurrentPinballGame->ball->positionQ0.y = 226;
|
||||
gCurrentPinballGame->ball->unk0 = 0;
|
||||
gCurrentPinballGame->unk2F4 = 17;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk28 > 16)
|
||||
else if (gCurrentPinballGame->unk28 > 16)
|
||||
{
|
||||
gCurrentPinballGame->unk1F = 0;
|
||||
gCurrentPinballGame->unk5FE = 0;
|
||||
|
|
@ -202,17 +202,17 @@ void sub_1AAA0(void)
|
|||
sub_11B0(7);
|
||||
}
|
||||
}
|
||||
else if (gCurrentPinballGame->unk28 > 12)
|
||||
else if (gCurrentPinballGame->unk28 > 12)
|
||||
{
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
gCurrentPinballGame->unk2F4 = 19;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk28 > 8)
|
||||
else if (gCurrentPinballGame->unk28 > 8)
|
||||
{
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
gCurrentPinballGame->unk2F4 = 20;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk28 > 4)
|
||||
else if (gCurrentPinballGame->unk28 > 4)
|
||||
{
|
||||
gCurrentPinballGame->ball->unk6 = 0;
|
||||
gCurrentPinballGame->unk2F4 = 21;
|
||||
|
|
@ -227,7 +227,7 @@ void sub_1AAA0(void)
|
|||
gCurrentPinballGame->ball->prevPositionQ1 = gCurrentPinballGame->ball->positionQ1;
|
||||
gCurrentPinballGame->ball->positionQ8.x= gCurrentPinballGame->ball->positionQ0.x << 8;
|
||||
gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ0.y << 8;
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -355,7 +355,7 @@ void sub_1AFD4(void)
|
|||
{
|
||||
gCurrentPinballGame->ball->unk0 = 1;
|
||||
gCurrentPinballGame->unk1F = 1;
|
||||
gCurrentPinballGame->unk28 = gCurrentPinballGame->unk28 - 1;
|
||||
gCurrentPinballGame->unk28--;
|
||||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
gCurrentPinballGame->ball->velocity.y = 0;
|
||||
gCurrentPinballGame->ball->positionQ0.x = 0xDC;
|
||||
|
|
|
|||
320
src/rom_201B8.c
320
src/rom_201B8.c
|
|
@ -41,6 +41,13 @@ extern const s16 gUnknown_086AD79C[];
|
|||
extern struct SongHeader gUnknown_0869F2A0;
|
||||
extern struct SongHeader gUnknown_0869F240;
|
||||
extern struct SongHeader gUnknown_086A0F30;
|
||||
extern struct SongHeader gUnknown_086A2FA0;
|
||||
extern struct SongHeader gUnknown_086A0328;
|
||||
extern struct SongHeader gUnknown_086A0368;
|
||||
extern s16 gUnknown_086ADF48[100];
|
||||
extern s16 gUnknown_086ADF8A[3];
|
||||
extern u16 gUnknown_086ADEE0[][2];
|
||||
extern s16 gUnknown_086B4922[][0xC];
|
||||
|
||||
|
||||
void sub_1C7F4(s16 arg0, s16 arg1)
|
||||
|
|
@ -882,7 +889,7 @@ void sub_1DDDC(void)
|
|||
if (gCurrentPinballGame->unk16C == var2)
|
||||
gCurrentPinballGame->unk16C = ((gMain.systemFrameCount + 1) % 6) + 1;
|
||||
else
|
||||
gCurrentPinballGame->unk16C = var2;
|
||||
gCurrentPinballGame->unk16C = var2;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk162)
|
||||
|
|
@ -926,7 +933,7 @@ void sub_1DDDC(void)
|
|||
if (gCurrentPinballGame->unk174 == 130)
|
||||
m4aSongNumStart(SE_UNKNOWN_0xC8);
|
||||
break;
|
||||
case 4:
|
||||
case 4:
|
||||
if (gCurrentPinballGame->unk174 == 102)
|
||||
m4aSongNumStart(SE_UNKNOWN_0xC8);
|
||||
if (gCurrentPinballGame->unk174 == 118)
|
||||
|
|
@ -934,7 +941,7 @@ void sub_1DDDC(void)
|
|||
if (gCurrentPinballGame->unk174 == 134)
|
||||
m4aSongNumStart(SE_UNKNOWN_0xC8);
|
||||
break;
|
||||
case 5:
|
||||
case 5:
|
||||
if (gCurrentPinballGame->unk174 == 104)
|
||||
m4aSongNumStart(SE_UNKNOWN_0xC8);
|
||||
break;
|
||||
|
|
@ -1176,7 +1183,7 @@ void sub_1EC48(void)
|
|||
gCurrentPinballGame->unk184[i].y = (-(gCurrentPinballGame->unk178[i].y / 10) + 7) * 2;
|
||||
if (group->baseY < -40)
|
||||
group->baseY = -40;
|
||||
|
||||
|
||||
for (j = 0; j < 2; j++)
|
||||
{
|
||||
oamSimple = &group->oam[j + i * 2];
|
||||
|
|
@ -1831,3 +1838,308 @@ void sub_201B8(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_203CC(void)
|
||||
{
|
||||
s16 i;
|
||||
s16 j;
|
||||
s16 r5;
|
||||
s16 tempY;
|
||||
struct SpriteGroup *spriteGroup;
|
||||
struct OamDataSimple *oamSimple;
|
||||
u16 *dst;
|
||||
const u16 *src;
|
||||
|
||||
sub_20EC0();
|
||||
|
||||
if (gCurrentPinballGame->unk1C6 > 167)
|
||||
{
|
||||
gCurrentPinballGame->unk744[0] = gUnknown_086ADF48[(gMain.fieldFrameCount % 160) / 5];
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2)
|
||||
gCurrentPinballGame->unk744[1] = gCurrentPinballGame->unk744[0] + 6;
|
||||
else
|
||||
gCurrentPinballGame->unk744[1] = gCurrentPinballGame->unk744[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk744[0] = (gMain.fieldFrameCount % 50) / 25;
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2)
|
||||
gCurrentPinballGame->unk744[1] = gCurrentPinballGame->unk744[0] + 9;
|
||||
else
|
||||
gCurrentPinballGame->unk744[1] = gCurrentPinballGame->unk744[0];
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2)
|
||||
{
|
||||
gCurrentPinballGame->unk1E3[0] = 1;
|
||||
gCurrentPinballGame->unk1E3[1] = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk1E3[0 + gCurrentPinballGame->outLanePikaPosition] = 1;
|
||||
gCurrentPinballGame->unk1E3[1 - gCurrentPinballGame->outLanePikaPosition] = 0;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk1C4 != 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk1C4 == 120)
|
||||
{
|
||||
// gCurrentPinballGame->unk1C2 + gCurrentPinballGame->unk1E2
|
||||
// Note: this can be && chained off of the previous if, once we have this line deciphered.
|
||||
if (gCurrentPinballGame->unk1E3[gCurrentPinballGame->unk1C2 - 1] != 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk1C6 > 167)
|
||||
{
|
||||
gCurrentPinballGame->unk1F = 1;
|
||||
gCurrentPinballGame->unk61C = 1;
|
||||
gCurrentPinballGame->unk1DE = 120;
|
||||
gCurrentPinballGame->unk1E0 = 120;
|
||||
gCurrentPinballGame->unk61E = gCurrentPinballGame->unk1DE;
|
||||
gCurrentPinballGame->unk5F7 = 1;
|
||||
gCurrentPinballGame->unk208 = 0;
|
||||
gCurrentPinballGame->unk20A = 0;
|
||||
|
||||
if (gCurrentPinballGame->outLanePikaPosition != 2)
|
||||
{
|
||||
gCurrentPinballGame->unk1C6 = 0;
|
||||
gCurrentPinballGame->unk1C8 = 0;
|
||||
gCurrentPinballGame->unk1CC = 0;
|
||||
gCurrentPinballGame->unk1CA = 0;
|
||||
gCurrentPinballGame->unk1D4 = 0;
|
||||
gCurrentPinballGame->unk1D6 = -4;
|
||||
gCurrentPinballGame->unk1D8 = 256;
|
||||
gCurrentPinballGame->unk1DA = 256;
|
||||
gCurrentPinballGame->unk1CE = 0;
|
||||
gCurrentPinballGame->unk1D0 = 0;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk620 = gCurrentPinballGame->ball->positionQ1;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 30000;
|
||||
|
||||
if (gCurrentPinballGame->unk62E <= 98)
|
||||
gCurrentPinballGame->unk62E++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk1C4 = 60;
|
||||
MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A2FA0);
|
||||
}
|
||||
|
||||
i = gCurrentPinballGame->unk1C2 - 1;
|
||||
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2)
|
||||
gCurrentPinballGame->unk744[i] = (i) * 7 + 2;
|
||||
else
|
||||
gCurrentPinballGame->unk744[i] = 2;
|
||||
|
||||
DmaCopy16(3, gUnknown_084C07EC + (gCurrentPinballGame->unk744[i] * 0x180), 0x06010480 + ((i) * 0x180), 0x180);
|
||||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2)
|
||||
gCurrentPinballGame->unk744[gCurrentPinballGame->unk1C2 - 1] = (gCurrentPinballGame->unk1C2 - 1) * 7 + 2;
|
||||
else
|
||||
gCurrentPinballGame->unk744[gCurrentPinballGame->unk1C2 - 1] = 2;
|
||||
|
||||
gCurrentPinballGame->unk1C4--;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk61C != 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk61E > 1)
|
||||
{
|
||||
r5 = (gCurrentPinballGame->unk1DE * 0x10000) / 10;
|
||||
gCurrentPinballGame->unk61E--;
|
||||
if (gCurrentPinballGame->unk1DE != 0)
|
||||
{
|
||||
gCurrentPinballGame->unk1DE--;
|
||||
if (gCurrentPinballGame->unk1DE == 40 && gCurrentPinballGame->unk61E > 40)
|
||||
{
|
||||
gCurrentPinballGame->unk1DE = 60;
|
||||
}
|
||||
}
|
||||
if (gCurrentPinballGame->unk61E == 116)
|
||||
{
|
||||
if (gCurrentPinballGame->unkE4)
|
||||
gCurrentPinballGame->unk61E = 120;
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unkE4 = 1;
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2)
|
||||
{
|
||||
if (gCurrentPinballGame->unk1C2 == 1)
|
||||
MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A0328);
|
||||
else
|
||||
MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A0368);
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x40);
|
||||
}
|
||||
else
|
||||
{
|
||||
MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A0328);
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x40);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gCurrentPinballGame->unk61E == 115 && gCurrentPinballGame->unkE4 == 1)
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_SE1, 0xFFFF, 0x200);
|
||||
|
||||
gCurrentPinballGame->ball->positionQ1.x =
|
||||
gCurrentPinballGame->unk620.x + ((Sin(r5) * 6) / 20000) +
|
||||
((gUnknown_086ADF8A[gCurrentPinballGame->unk1C2 - 1] * 2 - gCurrentPinballGame->unk620.x) * (gCurrentPinballGame->unk1E0 - gCurrentPinballGame->unk1DE)) / gCurrentPinballGame->unk1E0;
|
||||
|
||||
tempY = ((gCurrentPinballGame->unk1E0 - gCurrentPinballGame->unk1DE) * 40) / gCurrentPinballGame->unk1E0;
|
||||
gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->unk620.y - tempY;
|
||||
|
||||
gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ1.x * 128;
|
||||
gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ1.y * 128;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk61E == 1)
|
||||
{
|
||||
gCurrentPinballGame->ball->positionQ1.x = gUnknown_086ADF8A[gCurrentPinballGame->unk1C2 - 1] * 2;
|
||||
gCurrentPinballGame->ball->positionQ1.y = 702;
|
||||
gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ1.x * 128;
|
||||
gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ1.y * 128;
|
||||
gCurrentPinballGame->ball->velocity.x = 0;
|
||||
// fly me to the moon
|
||||
gCurrentPinballGame->ball->velocity.y = -300;
|
||||
m4aSongNumStart(SE_UNKNOWN_0x7C);
|
||||
gCurrentPinballGame->unk61E = 0;
|
||||
gCurrentPinballGame->unk1F = 0;
|
||||
gCurrentPinballGame->unk5F7 = 0;
|
||||
gCurrentPinballGame->holeIndicators[(gCurrentPinballGame->unk1C2 - 1) * 3] = 1;
|
||||
|
||||
if (gCurrentPinballGame->unk714 == 0 &&
|
||||
(gCurrentPinballGame->holeIndicators[0] &
|
||||
gCurrentPinballGame->holeIndicators[1] &
|
||||
gCurrentPinballGame->holeIndicators[2] &
|
||||
gCurrentPinballGame->holeIndicators[3]))
|
||||
{
|
||||
gCurrentPinballGame->unk714 = 1;
|
||||
gCurrentPinballGame->unk715 = 126;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 4000;
|
||||
}
|
||||
|
||||
sub_11B0(11);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk61E >= 100)
|
||||
{
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2)
|
||||
gCurrentPinballGame->unk744[gCurrentPinballGame->unk1C2 - 1] = (gCurrentPinballGame->unk1C2 - 1) * 7 + 2;
|
||||
else
|
||||
gCurrentPinballGame->unk744[gCurrentPinballGame->unk1C2 - 1] = 2;
|
||||
|
||||
if (gCurrentPinballGame->unk61E == 100)
|
||||
{
|
||||
gMain.unk44[38]->available = 1;
|
||||
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2 && gCurrentPinballGame->unk1C2 == 2)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_08395A4C, 0x06015800, 0x2400);
|
||||
}
|
||||
else
|
||||
{
|
||||
DmaCopy16(3, gUnknown_08397E6C, 0x06015800, 0x2400);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_086ADEE0[gCurrentPinballGame->unk20A][1] > gCurrentPinballGame->unk208)
|
||||
gCurrentPinballGame->unk208++;
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk208 = 0;
|
||||
gCurrentPinballGame->unk20A++;
|
||||
|
||||
if (gCurrentPinballGame->unk20A == 23)
|
||||
{
|
||||
m4aSongNumStop(SE_UNKNOWN_0x7C);
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk20A > 25)
|
||||
{
|
||||
gCurrentPinballGame->unk20A = 25;
|
||||
gCurrentPinballGame->unk61C = 0;
|
||||
gMain.unk44[38]->available = 0;
|
||||
gCurrentPinballGame->unkE4 = 0;
|
||||
|
||||
i = gCurrentPinballGame->unk1C2 - 1;
|
||||
if (gCurrentPinballGame->outLanePikaPosition == 2)
|
||||
gCurrentPinballGame->unk744[i] = i * 9;
|
||||
else
|
||||
gCurrentPinballGame->unk744[i] = 0;
|
||||
|
||||
DmaCopy16(3, gUnknown_084C07EC + (gCurrentPinballGame->unk744[i] * 0x180), 0x06010480 + (i * 0x180), 0x180);
|
||||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk20A >= 17 && gCurrentPinballGame->unk20A <= 23)
|
||||
{
|
||||
if ((gMain.systemFrameCount & 3) >> 1)
|
||||
gCurrentPinballGame->unk4C = -3;
|
||||
else
|
||||
gCurrentPinballGame->unk4C = 3;
|
||||
}
|
||||
|
||||
r5 = gUnknown_086ADEE0[gCurrentPinballGame->unk20A][0];
|
||||
i = gCurrentPinballGame->unk1C2 - 1;
|
||||
|
||||
spriteGroup = gMain.unk44[38];
|
||||
spriteGroup->baseX = (i * 177) - (gCurrentPinballGame->unk58 - 16);
|
||||
if (gCurrentPinballGame->unk61C)
|
||||
{
|
||||
spriteGroup->baseY = 380 - gCurrentPinballGame->unk5A;
|
||||
gCurrentPinballGame->unk1E3[i] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
spriteGroup->baseY = 180;
|
||||
gCurrentPinballGame->unk1E3[i] = 1;
|
||||
}
|
||||
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
oamSimple = &spriteGroup->oam[j];
|
||||
dst = (u16 *)&gOamBuffer[oamSimple->oamId];
|
||||
*dst++ = gUnknown_086B4922[r5][j * 3 + 0];
|
||||
*dst++ = gUnknown_086B4922[r5][j * 3 + 1];
|
||||
*dst++ = gUnknown_086B4922[r5][j * 3 + 2];
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x += spriteGroup->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y += spriteGroup->baseY;
|
||||
}
|
||||
}
|
||||
}
|
||||
spriteGroup = gMain.unk44[29];
|
||||
|
||||
if (spriteGroup->available)
|
||||
{
|
||||
for (i = 0; i <= 1; i++)
|
||||
{
|
||||
spriteGroup = gMain.unk44[29 + i];
|
||||
spriteGroup->baseX = (i * 177) - (gCurrentPinballGame->unk58 - 16);
|
||||
if (gCurrentPinballGame->unk1E3[i])
|
||||
{
|
||||
if ((gMain.fieldFrameCount % 5) == 0)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_084C07EC + (gCurrentPinballGame->unk744[i] * 0x180), 0x06010480 + (i * 0x180), 0x180);
|
||||
}
|
||||
|
||||
tempY = 380 - gCurrentPinballGame->unk5A;
|
||||
spriteGroup->baseY = tempY;
|
||||
}
|
||||
else
|
||||
spriteGroup->baseY = 200;
|
||||
|
||||
for (j = 0; j <= 1; j++)
|
||||
{
|
||||
oamSimple = &spriteGroup->oam[j];
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + spriteGroup->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + spriteGroup->baseY;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -590,7 +590,7 @@ void sub_21B0C(void)
|
|||
{
|
||||
DmaCopy16(3, gUnknown_084C00EC[gCurrentPinballGame->unk1CA], (void *)0x06010AE0, 0x80);
|
||||
gCurrentPinballGame->unk1CC = gCurrentPinballGame->unk1CA;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk1D0)
|
||||
|
|
@ -1258,7 +1258,7 @@ void sub_23300(void)
|
|||
gCurrentPinballGame->unk210++;
|
||||
if (gCurrentPinballGame->unk210 < 156)
|
||||
{
|
||||
|
||||
|
||||
group = gMain.unk44[4];
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
|
|
@ -2251,7 +2251,7 @@ void sub_253E0(void)
|
|||
{
|
||||
var1 = 0;
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk6CC == 1)
|
||||
{
|
||||
m4aSongNumStart(SE_UNKNOWN_0x8C);
|
||||
|
|
@ -2624,7 +2624,7 @@ void sub_260B8(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk6F4)
|
||||
if (gCurrentPinballGame->unk6F4)
|
||||
{
|
||||
gCurrentPinballGame->unk6F4--;
|
||||
if (gMain.eReaderBonuses[EREADER_RUIN_AREA_CARD])
|
||||
|
|
@ -2938,7 +2938,7 @@ void sub_26A10(void)
|
|||
var0 = gCurrentPinballGame->unk34;
|
||||
if (gCurrentPinballGame->unk6BC == 1)
|
||||
gCurrentPinballGame->unk32 = gCurrentPinballGame->unk33;
|
||||
else
|
||||
else
|
||||
gCurrentPinballGame->unk32 = gCurrentPinballGame->unk34;
|
||||
|
||||
gCurrentPinballGame->unk33 = (var0 + 1) % 6;
|
||||
|
|
@ -3439,7 +3439,7 @@ void sub_278F4(void)
|
|||
if (squaredMagnitude < 82 &&
|
||||
((gCurrentPinballGame->unk24 == 0 && gCurrentPinballGame->unk25E <= 5) || (gCurrentPinballGame->unk24 == 2 && gCurrentPinballGame->unk25E > 5)) &&
|
||||
gCurrentPinballGame->unk26B < 3)
|
||||
{
|
||||
{
|
||||
gCurrentPinballGame->scoreAddedInFrame = 10000;
|
||||
MPlayStart(&gMPlayInfo_SE1, &gUnknown_0869F618);
|
||||
gCurrentPinballGame->unk17 = 1;
|
||||
|
|
@ -3522,7 +3522,7 @@ void sub_27E08(void)
|
|||
{
|
||||
gCurrentPinballGame->unk724 = 4200;
|
||||
}
|
||||
gCurrentPinballGame->unk29A += 1;
|
||||
gCurrentPinballGame->unk29A++;
|
||||
|
||||
DmaCopy16(3, gUnknown_081C0064, (void *)PLTT + 0x180, 0x20);
|
||||
|
||||
|
|
|
|||
504
src/rom_27F94.c
504
src/rom_27F94.c
File diff suppressed because it is too large
Load Diff
|
|
@ -39,7 +39,7 @@ void sub_2C538(void)
|
|||
gCurrentPinballGame->unk304++;
|
||||
if (gCurrentPinballGame->unk304 == 9)
|
||||
{
|
||||
gCurrentPinballGame->unk300 = 3;
|
||||
gCurrentPinballGame->unk300 = 3;
|
||||
gCurrentPinballGame->unk304 = 0;
|
||||
}
|
||||
break;
|
||||
|
|
@ -99,14 +99,14 @@ void sub_2C538(void)
|
|||
group->baseX = 192 - gCurrentPinballGame->unk58;
|
||||
group->baseY = 278 - gCurrentPinballGame->unk5A;
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk302 > 0)
|
||||
{
|
||||
gCurrentPinballGame->unk302--;
|
||||
if (gCurrentPinballGame->unk302 == 0)
|
||||
gMain.spriteGroups[68].available = 0;
|
||||
}
|
||||
|
||||
|
||||
oamSimple = &group->oam[0];
|
||||
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY;
|
||||
|
|
@ -136,7 +136,7 @@ void sub_2C538(void)
|
|||
group = &gMain.spriteGroups[58];
|
||||
if (group->available)
|
||||
{
|
||||
group->baseX = 184 - gCurrentPinballGame->unk58;
|
||||
group->baseX = 184 - gCurrentPinballGame->unk58;
|
||||
group->baseY = 277 - gCurrentPinballGame->unk5A;
|
||||
DmaCopy16(3, gUnknown_0847DF0C[index], (void*) 0x06013580, 0x300);
|
||||
for (i = 0; i < 3;i++)
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ void sub_2D204(void)
|
|||
if (gCurrentPinballGame->unkCC < 236)
|
||||
gCurrentPinballGame->unkE6 = gCurrentPinballGame->unk18 / 2;;
|
||||
|
||||
if (gCurrentPinballGame->unk18 > 35)
|
||||
if (gCurrentPinballGame->unk18 > 35)
|
||||
{
|
||||
if (gCurrentPinballGame->unk18 < 68)
|
||||
{
|
||||
|
|
@ -664,7 +664,7 @@ void sub_2D204(void)
|
|||
{
|
||||
if (var0 == 1)
|
||||
m4aMPlayStop(&gMPlayInfo_BGM);
|
||||
|
||||
|
||||
gMain.blendControl = 0x9F;
|
||||
gMain.blendBrightness = 16 - (var0 / 4);
|
||||
if (var0 == 32)
|
||||
|
|
@ -672,7 +672,7 @@ void sub_2D204(void)
|
|||
gCurrentPinballGame->unk29C = 140;
|
||||
PlayCry_Normal(gSpeciesInfo[gCurrentPinballGame->currentSpecies].mainSeriesIndexNumber, 0);
|
||||
}
|
||||
|
||||
|
||||
if (var0 == 64)
|
||||
{
|
||||
gCurrentPinballGame->unk604 = 0;
|
||||
|
|
@ -701,14 +701,14 @@ void sub_2D204(void)
|
|||
gCurrentPinballGame->unkE4 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
index = gCurrentPinballGame->unk603;
|
||||
group = gMain.unk44[37];
|
||||
group->baseX = 96 - gCurrentPinballGame->unk58;
|
||||
group->baseY = 300 - gCurrentPinballGame->unk5A;
|
||||
if (group->baseY >= 200)
|
||||
group->baseY = 200;
|
||||
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
|
|
@ -850,7 +850,7 @@ void sub_2E094(void)
|
|||
if (gCurrentPinballGame->unk18 % 10 == 0)
|
||||
m4aSongNumStart(SE_UNKNOWN_0x97);
|
||||
}
|
||||
|
||||
|
||||
if (gMain.selectedField == FIELD_RUBY)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_08483D8C[index], (void *) 0x06015800, 0x480);
|
||||
|
|
@ -1314,7 +1314,7 @@ void sub_2F504(void)
|
|||
u16 *dst;
|
||||
const u16 *src;
|
||||
s16 index;
|
||||
|
||||
|
||||
group = &gMain.spriteGroups[26];
|
||||
if (group->available)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ void sub_313A0(void)
|
|||
s16 index;
|
||||
|
||||
group = &gMain.spriteGroups[69];
|
||||
if (group->available)
|
||||
if (group->available)
|
||||
{
|
||||
group->baseX = 16 - gCurrentPinballGame->unk58;
|
||||
group->baseY = 115 - gCurrentPinballGame->unk5A;
|
||||
|
|
@ -35,11 +35,11 @@ void sub_313A0(void)
|
|||
oamSimple = &group->oam[i];
|
||||
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_31498(void)
|
||||
void sub_31498(void)
|
||||
{
|
||||
s16 i, j;
|
||||
struct SpriteGroup *group;
|
||||
|
|
@ -55,7 +55,7 @@ void sub_31498(void)
|
|||
{
|
||||
if (gCurrentPinballGame->unk345 < 3)
|
||||
{
|
||||
gCurrentPinballGame->unk345 = gCurrentPinballGame->unk345 + 1;
|
||||
gCurrentPinballGame->unk345++;
|
||||
gCurrentPinballGame->scoreAddedInFrame = 20000;
|
||||
m4aSongNumStart(SE_UNKNOWN_0xDE);
|
||||
}
|
||||
|
|
@ -128,14 +128,14 @@ void sub_31498(void)
|
|||
gCurrentPinballGame->unk345++;
|
||||
if (gCurrentPinballGame->unk345 == 10)
|
||||
gCurrentPinballGame->unk346 = 4;
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk345 == 6)
|
||||
m4aSongNumStart(SE_UNKNOWN_0xE0);
|
||||
|
||||
index = gUnknown_086AE5A0[gCurrentPinballGame->unk345][0];
|
||||
DmaCopy16(3, &gUnknown_08490A4C[index], (void *)0x600D900, 0x440);
|
||||
}
|
||||
|
||||
|
||||
if (gCurrentPinballGame->unk345 < 6)
|
||||
{
|
||||
gCurrentPinballGame->unk200 = 280;
|
||||
|
|
@ -231,9 +231,9 @@ void sub_31498(void)
|
|||
oamSimple = &group->oam[j];
|
||||
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_31B30(void)
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ void sub_356A0(void)
|
|||
|
||||
group->baseX = 240;
|
||||
group->baseY = 160;
|
||||
|
||||
|
||||
oamSimple = &group->oam[0];
|
||||
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + 240;
|
||||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ extern struct SongHeader gUnknown_0869F664;
|
|||
void sub_4E814(void)
|
||||
{
|
||||
gCurrentPinballGame->unk734 = (gCurrentPinballGame->unk70C % 40) / 20;
|
||||
gCurrentPinballGame->unk70C = gCurrentPinballGame->unk70C + 1;
|
||||
gCurrentPinballGame->unk70C++;
|
||||
sub_4EA44();
|
||||
if (gCurrentPinballGame->unk6A < 232)
|
||||
{
|
||||
|
|
@ -181,7 +181,7 @@ void sub_4EBD0(void)
|
|||
gCurrentPinballGame->holeIndicators[3] = gCurrentPinballGame->holeIndicators[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
src = &gUnknown_086B0BC4[i][gCurrentPinballGame->holeIndicators[i]];
|
||||
|
|
@ -297,7 +297,7 @@ void sub_4EF38(void)
|
|||
s16 index;
|
||||
const u8 **src;
|
||||
const u8 **dest;
|
||||
|
||||
|
||||
index = 0;
|
||||
if (gCurrentPinballGame->unk2F0 > 2)
|
||||
gCurrentPinballGame->unk72A = 1;
|
||||
|
|
|
|||
|
|
@ -33,12 +33,12 @@ void sub_4F2B8(void)
|
|||
{
|
||||
if (gCurrentPinballGame->unk72C < gUnknown_086B08C4[gCurrentPinballGame->unk72B - 1])
|
||||
{
|
||||
gCurrentPinballGame->unk72C = gCurrentPinballGame->unk72C + 1;
|
||||
gCurrentPinballGame->unk72C++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk72C = 0;
|
||||
gCurrentPinballGame->unk72B = gCurrentPinballGame->unk72B - 1;
|
||||
gCurrentPinballGame->unk72B--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -442,7 +442,7 @@ void sub_4FC7C(void)
|
|||
gCurrentPinballGame->holeIndicators[3] = gCurrentPinballGame->holeIndicators[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
src = &gUnknown_086B1300[i][gCurrentPinballGame->holeIndicators[i]];
|
||||
|
|
|
|||
|
|
@ -270,7 +270,7 @@ void TitleScreen3_8010E00(void)
|
|||
gTitlescreen.unk6 = 9;
|
||||
gMain.subState = SUBSTATE_11;
|
||||
}
|
||||
|
||||
|
||||
if (gUnknown_020028A4)
|
||||
return;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user