Skip to content

Commit bcc3322

Browse files
committed
sa1: merge mp_event_mgr with sa2
1 parent 7dc67a8 commit bcc3322

51 files changed

Lines changed: 257 additions & 518 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

include/constants/sa1/move_states.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
/* Many from Sonic Advance 2 */
88
#define MOVESTATE_FACING_LEFT 0x00000001
99
#define MOVESTATE_IN_AIR 0x00000002
10-
#define MOVESTATE_4 0x00000004
11-
#define MOVESTATE_JUMPING (MOVESTATE_IN_AIR | MOVESTATE_4)
10+
#define MOVESTATE_SPIN_ATTACK 0x00000004
11+
#define MOVESTATE_JUMPING (MOVESTATE_IN_AIR | MOVESTATE_SPIN_ATTACK)
1212
#define MOVESTATE_STOOD_ON_OBJ 0x00000008
1313
#define MOVESTATE_FLIP_WITH_MOVE_DIR 0x00000010
1414
#define MOVESTATE_20 0x00000020

include/constants/sa2/move_states.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
/* Many from Sonic Advance 2 */
88
#define MOVESTATE_FACING_LEFT 0x00000001
99
#define MOVESTATE_IN_AIR 0x00000002
10-
#define MOVESTATE_4 0x00000004
11-
#define MOVESTATE_JUMPING (MOVESTATE_IN_AIR | MOVESTATE_4)
10+
#define MOVESTATE_SPIN_ATTACK 0x00000004
11+
#define MOVESTATE_JUMPING (MOVESTATE_IN_AIR | MOVESTATE_SPIN_ATTACK)
1212
#define MOVESTATE_STOOD_ON_OBJ 0x00000008
1313
#define MOVESTATE_FLIP_WITH_MOVE_DIR 0x00000010
1414
#define MOVESTATE_20 0x00000020

include/game/globals.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,13 @@
1919
#define GAME_MODE_MULTI_PLAYER_COLLECT_RINGS 5
2020
#endif
2121

22-
// TODO: Improve this name
23-
#define IS_MP_OR_TEAM_PLAY ((gGameMode == GAME_MODE_MULTI_PLAYER) || (gGameMode == GAME_MODE_TEAM_PLAY))
22+
#if (GAME == GAME_SA1)
23+
// In SA1 this check also assumed multiplayer was team play
24+
#define IS_TEAM_PLAY ((gGameMode == GAME_MODE_MULTI_PLAYER) || (gGameMode == GAME_MODE_TEAM_PLAY))
25+
#elif (GAME == GAME_SA2)
26+
// In SA2 this only checks that we are in the team play game mode
27+
#define IS_TEAM_PLAY ((gGameMode == GAME_MODE_TEAM_PLAY))
28+
#endif
2429

2530
#if (GAME == GAME_SA1)
2631
#define IS_SINGLE_PLAYER ((gGameMode == GAME_MODE_SINGLE_PLAYER) || (gGameMode == GAME_MODE_TIME_ATTACK))

sa1/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ SA2_C_FILES := \
263263
src/game/shared/stage/grind_effect_1.c \
264264
src/game/shared/stage/mp_event_recv_mgr.c \
265265
src/game/shared/stage/spot_lights_manager.c \
266+
src/game/shared/stage/mp_event_mgr.c \
266267
src/game/sa1/ui/game_2_0.c \
267268
src/game/sa1/ui/game_2_1.c \
268269
src/game/sa1/ui/stage_results.c \

sa1/ldscript.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ SECTIONS {
5656
sa2/src/game/sa1/stage/nuts_and_bolts_task.o(.text);
5757
sa2/src/game/shared/stage/spot_lights_manager.o(.text);
5858

59-
src/game/shared/stage/mp_event_mgr.o(.text);
59+
sa2/src/game/shared/stage/mp_event_mgr.o(.text);
6060
sa2/src/game/shared/stage/mp_event_recv_mgr.o(.text);
6161
sa2/src/game/sa1/stage/mp_results.o(.text);
6262
sa2/src/game/sa1/stage/mp_results_b.o(.text);
@@ -329,7 +329,7 @@ SECTIONS {
329329
sa2/src/game/sa1/menus/player_data.o(.rodata);
330330
sa2/src/game/shared/stage/unused_flash_task.o(.rodata);
331331
data/sa1/data_0_1_2.o(.rodata);
332-
src/game/shared/stage/mp_event_mgr.o(.rodata);
332+
sa2/src/game/shared/stage/mp_event_mgr.o(.rodata);
333333
sa2/src/game/sa1/stage/mp_results_b.o(.rodata);
334334
sa2/src/game/sa1/stage/mp_results.o(.rodata);
335335
sa2/src/game/shared/stage/mp_finish.o(.rodata);

sa1/src/game/shared/stage/camera.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,7 @@ void UpdateCamera(void)
849849
newX = CLAMP(newX, camera->minX, camera->maxX - DISPLAY_WIDTH);
850850

851851
#if (GAME == GAME_SA1)
852-
if ((player->moveState & MOVESTATE_IN_AIR) && (player->character != CHARACTER_KNUCKLES || player->sa2__unk61 != 9))
852+
if ((player->moveState & MOVESTATE_IN_AIR) && (player->character != CHARACTER_KNUCKLES || player->SA2_LABEL(unk61) != 9))
853853
#elif (GAME == GAME_SA2)
854854
if (camera->unk8 < Q(16)) {
855855
camera->unk8 += Q(0.125);

sa1/src/game/shared/stage/collision.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1453,7 +1453,7 @@ bool32 Coll_DamagePlayer(Player *p)
14531453

14541454
p->moveState &= ~MOVESTATE_STOOD_ON_OBJ;
14551455
p->moveState &= ~MOVESTATE_20;
1456-
p->moveState &= ~MOVESTATE_4;
1456+
p->moveState &= ~MOVESTATE_SPIN_ATTACK;
14571457
p->moveState &= ~MOVESTATE_FLIP_WITH_MOVE_DIR;
14581458
p->moveState |= MOVESTATE_IN_AIR;
14591459
p->moveState &= ~MOVESTATE_SPINDASH;
@@ -1464,14 +1464,14 @@ bool32 Coll_DamagePlayer(Player *p)
14641464

14651465
{
14661466
#if !NON_MATCHING && (GAME == GAME_SA1)
1467-
u8 *ptr = &p->sa2__unk61;
1467+
u8 *ptr = &p->SA2_LABEL(unk61);
14681468
u32 zero = 0;
14691469
asm("strb %0, [%1]" ::"r"(zero), "r"(ptr));
14701470
asm("add %0, #1" : "=r"(ptr));
14711471
asm("strb %0, [%1]" ::"r"(zero), "r"(ptr));
14721472
#else
1473-
p->sa2__unk61 = 0;
1474-
p->sa2__unk62 = 0;
1473+
p->SA2_LABEL(unk61) = 0;
1474+
p->SA2_LABEL(unk62) = 0;
14751475
#endif
14761476
}
14771477

@@ -1555,8 +1555,8 @@ bool32 Coll_DamageSuperSonic(Player *p)
15551555
p->qSpeedAirY = -Q(0);
15561556
p->sa2__unk2A = 24;
15571557
p->charState = 4;
1558-
p->sa2__unk61 = 0;
1559-
p->sa2__unk62 = 0;
1558+
p->SA2_LABEL(unk61) = 0;
1559+
p->SA2_LABEL(unk62) = 0;
15601560

15611561
m4aSongNumStart(SE_LIFE_LOST);
15621562

@@ -1587,7 +1587,7 @@ bool32 SA2_LABEL(sub_800DD54)(Player *p)
15871587

15881588
p->moveState &= ~MOVESTATE_STOOD_ON_OBJ;
15891589
p->moveState &= ~MOVESTATE_20;
1590-
p->moveState &= ~MOVESTATE_4;
1590+
p->moveState &= ~MOVESTATE_SPIN_ATTACK;
15911591
p->moveState &= ~MOVESTATE_FLIP_WITH_MOVE_DIR;
15921592
p->moveState |= MOVESTATE_IN_AIR;
15931593
p->moveState &= ~MOVESTATE_SPINDASH;
@@ -1602,14 +1602,14 @@ bool32 SA2_LABEL(sub_800DD54)(Player *p)
16021602

16031603
{
16041604
#if !NON_MATCHING && (GAME == GAME_SA1)
1605-
u8 *ptr = &p->sa2__unk61;
1605+
u8 *ptr = &p->SA2_LABEL(unk61);
16061606
u32 zero = 0;
16071607
asm("strb %0, [%1]" ::"r"(zero), "r"(ptr));
16081608
asm("add %0, #1" : "=r"(ptr));
16091609
asm("strb %0, [%1]" ::"r"(zero), "r"(ptr));
16101610
#else
1611-
p->sa2__unk61 = 0;
1612-
p->sa2__unk62 = 0;
1611+
p->SA2_LABEL(unk61) = 0;
1612+
p->SA2_LABEL(unk62) = 0;
16131613
#endif
16141614
}
16151615

@@ -1663,7 +1663,7 @@ bool32 SA2_LABEL(sub_800DE44)(Player *p)
16631663

16641664
p->moveState &= ~MOVESTATE_STOOD_ON_OBJ;
16651665
p->moveState &= ~MOVESTATE_20;
1666-
p->moveState &= ~MOVESTATE_4;
1666+
p->moveState &= ~MOVESTATE_SPIN_ATTACK;
16671667
p->moveState &= ~MOVESTATE_FLIP_WITH_MOVE_DIR;
16681668
p->moveState |= MOVESTATE_IN_AIR;
16691669
p->moveState &= ~MOVESTATE_SPINDASH;
@@ -1678,14 +1678,14 @@ bool32 SA2_LABEL(sub_800DE44)(Player *p)
16781678

16791679
{
16801680
#if !NON_MATCHING && (GAME == GAME_SA1)
1681-
u8 *ptr = &p->sa2__unk61;
1681+
u8 *ptr = &p->SA2_LABEL(unk61);
16821682
u32 zero = 0;
16831683
asm("strb %0, [%1]" ::"r"(zero), "r"(ptr));
16841684
asm("add %0, #1" : "=r"(ptr));
16851685
asm("strb %0, [%1]" ::"r"(zero), "r"(ptr));
16861686
#else
1687-
p->sa2__unk61 = 0;
1688-
p->sa2__unk62 = 0;
1687+
p->SA2_LABEL(unk61) = 0;
1688+
p->SA2_LABEL(unk62) = 0;
16891689
#endif
16901690
}
16911691

sa1/src/game/shared/stage/collision_0.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ NONMATCH("asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc",
223223
} else {
224224
if (!(gPlayer.moveState & 0x2)) {
225225
sp30 |= MOVESTATE_20;
226-
sp30 &= ~MOVESTATE_4;
226+
sp30 &= ~MOVESTATE_SPIN_ATTACK;
227227
}
228228
}
229229
sp30 |= 8;

0 commit comments

Comments
 (0)