mirror of
https://github.com/SAT-R/sa2.git
synced 2026-10-28 09:43:38 +00:00
sa2: propeller_spring -> flying_spring, document flying spring and em level task
This commit is contained in:
1 parent
978cf77612
commit
5efb59352f
13 files changed
+408
-405
No files matched your search
Vendored
+2
-2
@@ -234,7 +234,7 @@
|
|||||||
"clear_pipe.h": "c",
|
"clear_pipe.h": "c",
|
||||||
"slowing_snow.h": "c",
|
"slowing_snow.h": "c",
|
||||||
"handlers_ia_pipe_horn_sequences.h": "c",
|
"handlers_ia_pipe_horn_sequences.h": "c",
|
||||||
"sky_canyon_init.h": "c",
|
"sky_canyon_level_task.h": "c",
|
||||||
"mon.h": "c",
|
"mon.h": "c",
|
||||||
"kura_kura.h": "c",
|
"kura_kura.h": "c",
|
||||||
"star.h": "c",
|
"star.h": "c",
|
||||||
@@ -325,7 +325,7 @@
|
|||||||
"kubinaga.h": "c",
|
"kubinaga.h": "c",
|
||||||
"propeller.h": "c",
|
"propeller.h": "c",
|
||||||
"game_3.h": "c",
|
"game_3.h": "c",
|
||||||
"propeller_spring.h": "c",
|
"flying_spring.h": "c",
|
||||||
"sprite_data.h": "c",
|
"sprite_data.h": "c",
|
||||||
"game_2.h": "c",
|
"game_2.h": "c",
|
||||||
"palette_loader.h": "c",
|
"palette_loader.h": "c",
|
||||||
|
|||||||
@@ -3,20 +3,20 @@ Adv2,INTERACTABLES,65,20,,,,,
|
|||||||
32,0,8,6,SPECIAL_RING,0,0,0,0
|
32,0,8,6,SPECIAL_RING,0,0,0,0
|
||||||
33,0,30,17,PLATFORM_SQUARE,0,-4,0,8
|
33,0,30,17,PLATFORM_SQUARE,0,-4,0,8
|
||||||
33,0,13,17,PLATFORM_SQUARE,-4,0,8,0
|
33,0,13,17,PLATFORM_SQUARE,-4,0,8,0
|
||||||
34,0,11,20,PROPELLER_SPRING,0,0,0,0
|
34,0,11,20,FLYING_SPRING,0,0,0,0
|
||||||
34,0,22,16,PROPELLER_SPRING,0,0,0,0
|
34,0,22,16,FLYING_SPRING,0,0,0,0
|
||||||
35,0,29,24,SPIKES__HIDING_UP,0,0,0,0
|
35,0,29,24,SPIKES__HIDING_UP,0,0,0,0
|
||||||
35,0,13,24,PROPELLER_SPRING,0,0,0,0
|
35,0,13,24,FLYING_SPRING,0,0,0,0
|
||||||
35,0,1,21,PROPELLER_SPRING,0,0,0,0
|
35,0,1,21,FLYING_SPRING,0,0,0,0
|
||||||
36,0,11,25,PROPELLER_SPRING,0,0,0,0
|
36,0,11,25,FLYING_SPRING,0,0,0,0
|
||||||
36,0,23,21,PROPELLER_SPRING,0,0,0,0
|
36,0,23,21,FLYING_SPRING,0,0,0,0
|
||||||
37,0,2,26,PROPELLER_SPRING,0,0,0,0
|
37,0,2,26,FLYING_SPRING,0,0,0,0
|
||||||
37,0,14,22,PROPELLER_SPRING,0,0,0,0
|
37,0,14,22,FLYING_SPRING,0,0,0,0
|
||||||
37,0,26,26,PROPELLER_SPRING,0,0,0,0
|
37,0,26,26,FLYING_SPRING,0,0,0,0
|
||||||
42,0,12,30,GRIND_RAIL__START_AIR,-12,-3,24,3
|
42,0,12,30,GRIND_RAIL__START_AIR,-12,-3,24,3
|
||||||
46,0,22,31,PROPELLER_SPRING,0,0,0,0
|
46,0,22,31,FLYING_SPRING,0,0,0,0
|
||||||
47,0,1,29,PROPELLER_SPRING,0,0,0,0
|
47,0,1,29,FLYING_SPRING,0,0,0,0
|
||||||
47,0,14,31,PROPELLER_SPRING,0,0,0,0
|
47,0,14,31,FLYING_SPRING,0,0,0,0
|
||||||
50,0,8,28,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,22
|
50,0,8,28,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,22
|
||||||
50,0,8,24,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,24,4
|
50,0,8,24,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,24,4
|
||||||
50,0,12,28,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,24
|
50,0,12,28,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,24
|
||||||
@@ -83,9 +83,9 @@ Adv2,INTERACTABLES,65,20,,,,,
|
|||||||
50,2,20,8,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,12
|
50,2,20,8,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,12
|
||||||
51,2,30,2,SMALL_WINDMILL,15,0,0,0
|
51,2,30,2,SMALL_WINDMILL,15,0,0,0
|
||||||
53,2,11,20,TOGGLE__GOAL,0,0,0,0
|
53,2,11,20,TOGGLE__GOAL,0,0,0,0
|
||||||
27,3,29,31,PROPELLER_SPRING,0,0,0,0
|
27,3,29,31,FLYING_SPRING,0,0,0,0
|
||||||
28,3,9,28,PROPELLER_SPRING,0,0,0,0
|
28,3,9,28,FLYING_SPRING,0,0,0,0
|
||||||
28,3,21,31,PROPELLER_SPRING,0,0,0,0
|
28,3,21,31,FLYING_SPRING,0,0,0,0
|
||||||
29,3,17,24,RAMP,1,0,0,0
|
29,3,17,24,RAMP,1,0,0,0
|
||||||
31,3,16,12,WHIRLWIND__B,0,-12,12,12
|
31,3,16,12,WHIRLWIND__B,0,-12,12,12
|
||||||
32,3,8,0,FAN__RIGHT,0,-12,12,12
|
32,3,8,0,FAN__RIGHT,0,-12,12,12
|
||||||
@@ -228,8 +228,8 @@ Adv2,INTERACTABLES,65,20,,,,,
|
|||||||
23,7,12,28,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,16
|
23,7,12,28,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,16
|
||||||
23,7,8,24,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,8,4
|
23,7,8,24,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,8,4
|
||||||
24,7,22,16,SPRING__UP,0,0,0,0
|
24,7,22,16,SPRING__UP,0,0,0,0
|
||||||
26,7,24,11,PROPELLER_SPRING,0,0,0,0
|
26,7,24,11,FLYING_SPRING,0,0,0,0
|
||||||
27,7,4,3,PROPELLER_SPRING,0,0,0,0
|
27,7,4,3,FLYING_SPRING,0,0,0,0
|
||||||
28,7,16,18,SPRING__BIG_UPRIGHT,1,0,0,0
|
28,7,16,18,SPRING__BIG_UPRIGHT,1,0,0,0
|
||||||
30,7,30,16,SMALL_WINDMILL,2,0,0,0
|
30,7,30,16,SMALL_WINDMILL,2,0,0,0
|
||||||
35,7,18,28,SPRING__UP,0,0,0,0
|
35,7,18,28,SPRING__UP,0,0,0,0
|
||||||
@@ -246,20 +246,20 @@ Adv2,INTERACTABLES,65,20,,,,,
|
|||||||
29,8,18,8,SPIKES__HIDING_UP,0,0,0,0
|
29,8,18,8,SPIKES__HIDING_UP,0,0,0,0
|
||||||
29,8,29,10,PROPELLER,0,0,0,0
|
29,8,29,10,PROPELLER,0,0,0,0
|
||||||
29,8,8,10,SPRING__BIG_UPLEFT,1,0,0,0
|
29,8,8,10,SPRING__BIG_UPLEFT,1,0,0,0
|
||||||
32,8,2,17,PROPELLER_SPRING,0,0,0,0
|
32,8,2,17,FLYING_SPRING,0,0,0,0
|
||||||
32,8,14,15,PROPELLER_SPRING,0,0,0,0
|
32,8,14,15,FLYING_SPRING,0,0,0,0
|
||||||
32,8,26,19,PROPELLER_SPRING,0,0,0,0
|
32,8,26,19,FLYING_SPRING,0,0,0,0
|
||||||
33,8,5,14,PROPELLER_SPRING,0,0,0,0
|
33,8,5,14,FLYING_SPRING,0,0,0,0
|
||||||
33,8,24,14,FAN__RIGHT,0,-12,12,12
|
33,8,24,14,FAN__RIGHT,0,-12,12,12
|
||||||
37,8,16,10,SPRING__BIG_UPRIGHT,1,0,0,0
|
37,8,16,10,SPRING__BIG_UPRIGHT,1,0,0,0
|
||||||
10,9,11,31,PROPELLER_SPRING,0,0,0,0
|
10,9,11,31,FLYING_SPRING,0,0,0,0
|
||||||
10,9,28,19,SPECIAL_RING,0,0,0,0
|
10,9,28,19,SPECIAL_RING,0,0,0,0
|
||||||
11,9,14,28,PROPELLER_SPRING,0,0,0,0
|
11,9,14,28,FLYING_SPRING,0,0,0,0
|
||||||
12,9,6,28,PROPELLER_SPRING,0,0,0,0
|
12,9,6,28,FLYING_SPRING,0,0,0,0
|
||||||
12,9,16,31,PROPELLER_SPRING,0,0,0,0
|
12,9,16,31,FLYING_SPRING,0,0,0,0
|
||||||
20,9,13,27,PROPELLER_SPRING,0,0,0,0
|
20,9,13,27,FLYING_SPRING,0,0,0,0
|
||||||
20,9,4,18,PROPELLER_SPRING,0,0,0,0
|
20,9,4,18,FLYING_SPRING,0,0,0,0
|
||||||
20,9,13,8,PROPELLER_SPRING,0,0,0,0
|
20,9,13,8,FLYING_SPRING,0,0,0,0
|
||||||
20,9,28,0,BOOSTER,0,0,0,0
|
20,9,28,0,BOOSTER,0,0,0,0
|
||||||
22,9,21,24,TOGGLE__CHECKPOINT,0,0,0,0
|
22,9,21,24,TOGGLE__CHECKPOINT,0,0,0,0
|
||||||
22,9,21,0,TOGGLE__CHECKPOINT,0,0,0,0
|
22,9,21,0,TOGGLE__CHECKPOINT,0,0,0,0
|
||||||
@@ -283,7 +283,7 @@ Adv2,INTERACTABLES,65,20,,,,,
|
|||||||
38,9,2,12,BOOSTER,0,1,0,0
|
38,9,2,12,BOOSTER,0,1,0,0
|
||||||
38,9,8,26,WHIRLWIND__B,0,-14,12,28
|
38,9,8,26,WHIRLWIND__B,0,-14,12,28
|
||||||
8,10,30,28,DASH_RING,1,0,0,0
|
8,10,30,28,DASH_RING,1,0,0,0
|
||||||
11,10,26,0,PROPELLER_SPRING,0,0,0,0
|
11,10,26,0,FLYING_SPRING,0,0,0,0
|
||||||
12,10,20,16,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,14
|
12,10,20,16,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,14
|
||||||
12,10,16,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,14
|
12,10,16,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,14
|
||||||
12,10,16,12,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,8,4
|
12,10,16,12,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,8,4
|
||||||
@@ -304,8 +304,8 @@ Adv2,INTERACTABLES,65,20,,,,,
|
|||||||
32,10,20,28,FAN__LEFT,-12,-12,12,12
|
32,10,20,28,FAN__LEFT,-12,-12,12,12
|
||||||
32,10,2,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,12
|
32,10,2,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,12
|
||||||
32,10,20,30,SPIKES__NORMAL_RIGHT,0,0,0,0
|
32,10,20,30,SPIKES__NORMAL_RIGHT,0,0,0,0
|
||||||
34,10,26,30,PROPELLER_SPRING,0,0,0,0
|
34,10,26,30,FLYING_SPRING,0,0,0,0
|
||||||
35,10,6,31,PROPELLER_SPRING,0,0,0,0
|
35,10,6,31,FLYING_SPRING,0,0,0,0
|
||||||
36,10,21,28,RAMP,1,0,0,0
|
36,10,21,28,RAMP,1,0,0,0
|
||||||
37,10,23,23,SMALL_WINDMILL,1,0,0,0
|
37,10,23,23,SMALL_WINDMILL,1,0,0,0
|
||||||
37,10,16,7,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,12,4
|
37,10,16,7,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,12,4
|
||||||
@@ -326,8 +326,8 @@ Adv2,INTERACTABLES,65,20,,,,,
|
|||||||
25,11,26,20,SPRING__UP,2,0,0,0
|
25,11,26,20,SPRING__UP,2,0,0,0
|
||||||
26,11,2,8,BOOSTER,0,0,0,0
|
26,11,2,8,BOOSTER,0,0,0,0
|
||||||
30,11,18,15,SMALL_WINDMILL,15,0,0,0
|
30,11,18,15,SMALL_WINDMILL,15,0,0,0
|
||||||
32,11,31,3,PROPELLER_SPRING,0,0,0,0
|
32,11,31,3,FLYING_SPRING,0,0,0,0
|
||||||
34,11,22,6,PROPELLER_SPRING,0,0,0,0
|
34,11,22,6,FLYING_SPRING,0,0,0,0
|
||||||
8,12,30,30,DASH_RING,0,0,0,0
|
8,12,30,30,DASH_RING,0,0,0,0
|
||||||
10,12,31,0,RAMP,1,0,0,0
|
10,12,31,0,RAMP,1,0,0,0
|
||||||
12,12,16,12,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,14
|
12,12,16,12,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,14
|
||||||
@@ -350,9 +350,9 @@ Adv2,INTERACTABLES,65,20,,,,,
|
|||||||
26,12,20,12,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,24
|
26,12,20,12,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,24
|
||||||
30,12,24,29,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,4
|
30,12,24,29,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,4
|
||||||
30,12,20,29,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,4
|
30,12,20,29,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,4
|
||||||
31,12,13,25,PROPELLER_SPRING,0,0,0,0
|
31,12,13,25,FLYING_SPRING,0,0,0,0
|
||||||
31,12,27,27,PROPELLER_SPRING,0,0,0,0
|
31,12,27,27,FLYING_SPRING,0,0,0,0
|
||||||
32,12,8,25,PROPELLER_SPRING,0,0,0,0
|
32,12,8,25,FLYING_SPRING,0,0,0,0
|
||||||
32,12,28,24,BOUNCY_SPRING,0,0,0,0
|
32,12,28,24,BOUNCY_SPRING,0,0,0,0
|
||||||
8,13,4,21,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,4
|
8,13,4,21,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,4
|
||||||
8,13,8,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,24,4
|
8,13,8,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,24,4
|
||||||
|
|||||||
|
@@ -2,10 +2,10 @@ Adv2,INTERACTABLES,80,19,,,,,
|
|||||||
40,0,9,24,TOGGLE__CHECKPOINT,0,0,0,0
|
40,0,9,24,TOGGLE__CHECKPOINT,0,0,0,0
|
||||||
40,0,9,0,TOGGLE__CHECKPOINT,0,0,0,0
|
40,0,9,0,TOGGLE__CHECKPOINT,0,0,0,0
|
||||||
40,1,9,16,TOGGLE__CHECKPOINT,0,0,0,0
|
40,1,9,16,TOGGLE__CHECKPOINT,0,0,0,0
|
||||||
63,1,30,30,PROPELLER_SPRING,0,0,0,0
|
63,1,30,30,FLYING_SPRING,0,0,0,0
|
||||||
64,1,14,23,PROPELLER_SPRING,0,0,0,0
|
64,1,14,23,FLYING_SPRING,0,0,0,0
|
||||||
64,1,6,16,PROPELLER_SPRING,0,0,0,0
|
64,1,6,16,FLYING_SPRING,0,0,0,0
|
||||||
64,1,15,9,PROPELLER_SPRING,0,0,0,0
|
64,1,15,9,FLYING_SPRING,0,0,0,0
|
||||||
64,1,28,1,SPECIAL_RING,0,0,0,0
|
64,1,28,1,SPECIAL_RING,0,0,0,0
|
||||||
65,1,16,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,13
|
65,1,16,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,13
|
||||||
65,1,20,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,24,4
|
65,1,20,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,24,4
|
||||||
@@ -17,14 +17,14 @@ Adv2,INTERACTABLES,80,19,,,,,
|
|||||||
58,2,28,20,GRIND_RAIL__END_ALTERNATE,-6,-3,12,3
|
58,2,28,20,GRIND_RAIL__END_ALTERNATE,-6,-3,12,3
|
||||||
59,2,5,20,RAMP,1,0,0,0
|
59,2,5,20,RAMP,1,0,0,0
|
||||||
62,2,14,20,SMALL_WINDMILL,1,0,0,0
|
62,2,14,20,SMALL_WINDMILL,1,0,0,0
|
||||||
63,2,21,30,PROPELLER_SPRING,0,0,0,0
|
63,2,21,30,FLYING_SPRING,0,0,0,0
|
||||||
63,2,26,15,PROPELLER_SPRING,0,0,0,0
|
63,2,26,15,FLYING_SPRING,0,0,0,0
|
||||||
63,2,20,5,PROPELLER_SPRING,0,0,0,0
|
63,2,20,5,FLYING_SPRING,0,0,0,0
|
||||||
64,2,14,27,PROPELLER_SPRING,0,0,0,0
|
64,2,14,27,FLYING_SPRING,0,0,0,0
|
||||||
64,2,3,23,PROPELLER_SPRING,0,0,0,0
|
64,2,3,23,FLYING_SPRING,0,0,0,0
|
||||||
64,2,17,12,PROPELLER_SPRING,0,0,0,0
|
64,2,17,12,FLYING_SPRING,0,0,0,0
|
||||||
64,2,21,0,PROPELLER_SPRING,0,0,0,0
|
64,2,21,0,FLYING_SPRING,0,0,0,0
|
||||||
64,2,10,4,PROPELLER_SPRING,0,0,0,0
|
64,2,10,4,FLYING_SPRING,0,0,0,0
|
||||||
67,2,28,18,SPRING__LEFT,2,0,0,0
|
67,2,28,18,SPRING__LEFT,2,0,0,0
|
||||||
67,2,19,8,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,13
|
67,2,19,8,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,13
|
||||||
40,3,9,0,TOGGLE__CHECKPOINT,0,0,0,0
|
40,3,9,0,TOGGLE__CHECKPOINT,0,0,0,0
|
||||||
@@ -35,9 +35,9 @@ Adv2,INTERACTABLES,80,19,,,,,
|
|||||||
60,3,0,12,GRIND_RAIL__START_GROUND,-12,-3,24,3
|
60,3,0,12,GRIND_RAIL__START_GROUND,-12,-3,24,3
|
||||||
62,3,30,24,SPRING__UP,0,0,0,0
|
62,3,30,24,SPRING__UP,0,0,0,0
|
||||||
62,3,8,24,GRIND_RAIL__END_ALTERNATE,-12,-3,24,3
|
62,3,8,24,GRIND_RAIL__END_ALTERNATE,-12,-3,24,3
|
||||||
63,3,20,14,PROPELLER_SPRING,0,0,0,0
|
63,3,20,14,FLYING_SPRING,0,0,0,0
|
||||||
64,3,2,8,PROPELLER_SPRING,0,0,0,0
|
64,3,2,8,FLYING_SPRING,0,0,0,0
|
||||||
64,3,16,13,PROPELLER_SPRING,0,0,0,0
|
64,3,16,13,FLYING_SPRING,0,0,0,0
|
||||||
65,3,20,10,SPRING__RIGHT,2,0,0,0
|
65,3,20,10,SPRING__RIGHT,2,0,0,0
|
||||||
65,3,25,0,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,13
|
65,3,25,0,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,13
|
||||||
68,3,11,24,TOGGLE__GOAL,0,0,0,0
|
68,3,11,24,TOGGLE__GOAL,0,0,0,0
|
||||||
@@ -109,8 +109,8 @@ Adv2,INTERACTABLES,80,19,,,,,
|
|||||||
49,7,31,17,PLATFORM_B,0,0,0,0
|
49,7,31,17,PLATFORM_B,0,0,0,0
|
||||||
49,7,25,17,PLATFORM_B,0,0,0,0
|
49,7,25,17,PLATFORM_B,0,0,0,0
|
||||||
49,7,19,17,PLATFORM_B,0,0,0,0
|
49,7,19,17,PLATFORM_B,0,0,0,0
|
||||||
52,7,25,9,PROPELLER_SPRING,0,0,0,0
|
52,7,25,9,FLYING_SPRING,0,0,0,0
|
||||||
53,7,3,7,PROPELLER_SPRING,0,0,0,0
|
53,7,3,7,FLYING_SPRING,0,0,0,0
|
||||||
54,7,6,28,BOOSTER,0,0,0,0
|
54,7,6,28,BOOSTER,0,0,0,0
|
||||||
54,7,20,31,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,21
|
54,7,20,31,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,21
|
||||||
55,7,0,31,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,9
|
55,7,0,31,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,9
|
||||||
@@ -123,10 +123,10 @@ Adv2,INTERACTABLES,80,19,,,,,
|
|||||||
60,7,24,4,FAN__LEFT,-12,-24,12,24
|
60,7,24,4,FAN__LEFT,-12,-24,12,24
|
||||||
60,7,0,4,GRIND_RAIL__END_GROUND,-12,-3,24,3
|
60,7,0,4,GRIND_RAIL__END_GROUND,-12,-3,24,3
|
||||||
25,8,4,30,SPRING__RIGHT,3,0,0,0
|
25,8,4,30,SPRING__RIGHT,3,0,0,0
|
||||||
29,8,25,13,PROPELLER_SPRING,0,0,0,0
|
29,8,25,13,FLYING_SPRING,0,0,0,0
|
||||||
29,8,13,16,PROPELLER_SPRING,0,0,0,0
|
29,8,13,16,FLYING_SPRING,0,0,0,0
|
||||||
30,8,29,5,PROPELLER_SPRING,0,0,0,0
|
30,8,29,5,FLYING_SPRING,0,0,0,0
|
||||||
31,8,9,1,PROPELLER_SPRING,0,0,0,0
|
31,8,9,1,FLYING_SPRING,0,0,0,0
|
||||||
35,8,16,21,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,19
|
35,8,16,21,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,19
|
||||||
35,8,12,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,16
|
35,8,12,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,16
|
||||||
36,8,20,8,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,14
|
36,8,20,8,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,14
|
||||||
@@ -178,9 +178,9 @@ Adv2,INTERACTABLES,80,19,,,,,
|
|||||||
54,9,1,16,DASH_RING,2,0,0,0
|
54,9,1,16,DASH_RING,2,0,0,0
|
||||||
55,9,31,30,SPRING__SMALL_UPRIGHT,3,0,0,0
|
55,9,31,30,SPRING__SMALL_UPRIGHT,3,0,0,0
|
||||||
57,9,30,12,SPRING__UP,3,0,0,0
|
57,9,30,12,SPRING__UP,3,0,0,0
|
||||||
22,10,29,29,PROPELLER_SPRING,0,0,0,0
|
22,10,29,29,FLYING_SPRING,0,0,0,0
|
||||||
22,10,17,22,PROPELLER_SPRING,0,0,0,0
|
22,10,17,22,FLYING_SPRING,0,0,0,0
|
||||||
22,10,22,13,PROPELLER_SPRING,0,0,0,0
|
22,10,22,13,FLYING_SPRING,0,0,0,0
|
||||||
22,10,28,4,FAN__RIGHT,0,-12,12,12
|
22,10,28,4,FAN__RIGHT,0,-12,12,12
|
||||||
24,10,9,22,PLATFORM_SQUARE,0,-1,0,2
|
24,10,9,22,PLATFORM_SQUARE,0,-1,0,2
|
||||||
25,10,12,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,12
|
25,10,12,16,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,12
|
||||||
@@ -216,7 +216,7 @@ Adv2,INTERACTABLES,80,19,,,,,
|
|||||||
41,10,8,8,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,9,4
|
41,10,8,8,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,9,4
|
||||||
41,10,4,4,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,8
|
41,10,4,4,TOGGLE_PLAYER_LAYER__BACKGROUND,0,0,4,8
|
||||||
41,10,15,16,SPRING__UP,3,0,0,0
|
41,10,15,16,SPRING__UP,3,0,0,0
|
||||||
42,10,12,9,PROPELLER_SPRING,0,0,0,0
|
42,10,12,9,FLYING_SPRING,0,0,0,0
|
||||||
43,10,19,16,BOOSTER,0,0,0,0
|
43,10,19,16,BOOSTER,0,0,0,0
|
||||||
53,10,6,4,SPRING__UP,0,0,0,0
|
53,10,6,4,SPRING__UP,0,0,0,0
|
||||||
25,11,24,3,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,13
|
25,11,24,3,TOGGLE_PLAYER_LAYER__FOREGROUND,0,0,4,13
|
||||||
|
|||||||
|
@@ -89,7 +89,7 @@
|
|||||||
#define IA__PROPELLER 82
|
#define IA__PROPELLER 82
|
||||||
#define IA__SLIDY_ICE 83
|
#define IA__SLIDY_ICE 83
|
||||||
#define IA__SMALL_WINDMILL 84
|
#define IA__SMALL_WINDMILL 84
|
||||||
#define IA__PROPELLER_SPRING 85
|
#define IA__FLYING_SPRING 85
|
||||||
#define IA__WHIRLWIND__A 86
|
#define IA__WHIRLWIND__A 86
|
||||||
#define IA__FAN__LEFT 87
|
#define IA__FAN__LEFT 87
|
||||||
#define IA__FAN__RIGHT 88
|
#define IA__FAN__RIGHT 88
|
||||||
|
|||||||
File renamed without changes.
+4
-4
@@ -8,10 +8,10 @@
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ Sprite spring;
|
/* 0x00 */ Sprite spring;
|
||||||
/* 0x30 */ Sprite propellor;
|
/* 0x30 */ Sprite propellor;
|
||||||
/* 0x60 */ u16 unk60;
|
/* 0x60 */ u16 visibleFlyingSprings;
|
||||||
/* 0x62 */ u16 unk62;
|
/* 0x62 */ u16 visiblePropellers;
|
||||||
} Sprite_OnInit_SkyCanyon;
|
} SkyCanyonLevelTask;
|
||||||
|
|
||||||
Task *sub_80807CC(void);
|
Task *CreateLevelTask_SkyCanyon(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -39,7 +39,7 @@ typedef struct {
|
|||||||
/* 0x0E|0x10 */ CamCoord prevCamY;
|
/* 0x0E|0x10 */ CamCoord prevCamY;
|
||||||
/* 0x10|0x14 */ u8 SA2_LABEL(unk14);
|
/* 0x10|0x14 */ u8 SA2_LABEL(unk14);
|
||||||
#if (GAME == GAME_SA2)
|
#if (GAME == GAME_SA2)
|
||||||
/* 0x18|0x18 */ Task *preInit;
|
/* 0x18|0x18 */ Task *levelTask;
|
||||||
#endif
|
#endif
|
||||||
} EntitiesManager;
|
} EntitiesManager;
|
||||||
extern Task *gEntitiesManagerTask;
|
extern Task *gEntitiesManagerTask;
|
||||||
|
|||||||
+2
-2
@@ -275,7 +275,7 @@ SECTIONS
|
|||||||
src/game/sa2/stage/interactables/techno_base/light_globe.o(.text);
|
src/game/sa2/stage/interactables/techno_base/light_globe.o(.text);
|
||||||
src/game/sa2/stage/interactables/sky_canyon/propeller.o(.text);
|
src/game/sa2/stage/interactables/sky_canyon/propeller.o(.text);
|
||||||
src/game/sa2/stage/interactables/sky_canyon/small_windmill.o(.text);
|
src/game/sa2/stage/interactables/sky_canyon/small_windmill.o(.text);
|
||||||
src/game/sa2/stage/interactables/sky_canyon/propeller_spring.o(.text);
|
src/game/sa2/stage/interactables/sky_canyon/flying_spring.o(.text);
|
||||||
src/game/sa2/stage/interactables/sky_canyon/whirlwind.o(.text);
|
src/game/sa2/stage/interactables/sky_canyon/whirlwind.o(.text);
|
||||||
src/game/sa2/stage/interactables/sky_canyon/fan.o(.text);
|
src/game/sa2/stage/interactables/sky_canyon/fan.o(.text);
|
||||||
src/game/sa2/stage/interactables/egg_utopia/launcher.o(.text);
|
src/game/sa2/stage/interactables/egg_utopia/launcher.o(.text);
|
||||||
@@ -286,7 +286,7 @@ SECTIONS
|
|||||||
src/game/sa2/stage/interactables/egg_utopia/speeding_platform.o(.text);
|
src/game/sa2/stage/interactables/egg_utopia/speeding_platform.o(.text);
|
||||||
src/game/sa2/stage/interactables/egg_utopia/gravity_toggle.o(.text);
|
src/game/sa2/stage/interactables/egg_utopia/gravity_toggle.o(.text);
|
||||||
src/game/sa2/stage/interactables/collect_rings_lap_trigger.o(.text);
|
src/game/sa2/stage/interactables/collect_rings_lap_trigger.o(.text);
|
||||||
src/game/sa2/stage/interactables/sky_canyon_init.o(.text);
|
src/game/sa2/stage/interactables/sky_canyon_level_task.o(.text);
|
||||||
src/game/sa2/stage/interactables/105.o(.text);
|
src/game/sa2/stage/interactables/105.o(.text);
|
||||||
src/game/sa2/stage/interactables/note_particle.o(.text);
|
src/game/sa2/stage/interactables/note_particle.o(.text);
|
||||||
src/game/sa2/stage/interactables/special_ring.o(.text);
|
src/game/sa2/stage/interactables/special_ring.o(.text);
|
||||||
|
|||||||
@@ -0,0 +1,295 @@
|
|||||||
|
#include "global.h"
|
||||||
|
|
||||||
|
#include "trig.h"
|
||||||
|
#include "lib/m4a/m4a.h"
|
||||||
|
|
||||||
|
#include "game/shared/stage/entities_manager.h"
|
||||||
|
|
||||||
|
#include "game/sa2/stage/interactables/sky_canyon/flying_spring.h"
|
||||||
|
#include "game/sa2/stage/interactables/sky_canyon_level_task.h"
|
||||||
|
|
||||||
|
#include "game/sa2/stage/player_controls.h"
|
||||||
|
#include "game/shared/stage/player.h"
|
||||||
|
#include "game/shared/stage/camera.h"
|
||||||
|
|
||||||
|
#include "constants/sa2/player_transitions.h"
|
||||||
|
#include "constants/sa2/songs.h"
|
||||||
|
|
||||||
|
#define STATE_JUMPED 2
|
||||||
|
#define STATE_MOVING_UP 1
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
SpriteBase base;
|
||||||
|
Sprite sprite;
|
||||||
|
s32 x;
|
||||||
|
s32 y;
|
||||||
|
s16 qOffsetX;
|
||||||
|
s16 qOffsetY;
|
||||||
|
u8 state;
|
||||||
|
u8 step;
|
||||||
|
} Sprite_FlyingSpring;
|
||||||
|
|
||||||
|
static bool32 sub_807C424(Sprite_FlyingSpring *);
|
||||||
|
static void sub_807C4A0(Sprite_FlyingSpring *);
|
||||||
|
static bool32 sub_807C598(Sprite_FlyingSpring *);
|
||||||
|
static void sub_807C5E0(Sprite_FlyingSpring *);
|
||||||
|
static void UpdateSharedFlyingSpringAnimation(void);
|
||||||
|
static void RenderFlyingSpring(Sprite_FlyingSpring *);
|
||||||
|
static void TaskDestructor_Interactable085(Task *);
|
||||||
|
static void sub_807C52C(Sprite_FlyingSpring *);
|
||||||
|
static void sub_807C4EC(Sprite_FlyingSpring *);
|
||||||
|
static Sprite *GetSharedFlyingSpringSprite(void);
|
||||||
|
|
||||||
|
static void Task_Interactable085(void)
|
||||||
|
{
|
||||||
|
Sprite_FlyingSpring *flyingSpring = TASK_DATA(gCurTask);
|
||||||
|
flyingSpring->qOffsetY = SIN_24_8(flyingSpring->step * 4) * 2;
|
||||||
|
flyingSpring->step += 2;
|
||||||
|
if (sub_807C424(flyingSpring)) {
|
||||||
|
sub_807C4A0(flyingSpring);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sub_807C598(flyingSpring)) {
|
||||||
|
sub_807C5E0(flyingSpring);
|
||||||
|
} else {
|
||||||
|
UpdateSharedFlyingSpringAnimation();
|
||||||
|
RenderFlyingSpring(flyingSpring);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C2E0(void)
|
||||||
|
{
|
||||||
|
s16 r1;
|
||||||
|
Sprite_FlyingSpring *flyingSpring = TASK_DATA(gCurTask);
|
||||||
|
flyingSpring->qOffsetY = SIN_24_8(flyingSpring->step * 4) * 16;
|
||||||
|
sub_807C52C(flyingSpring);
|
||||||
|
|
||||||
|
r1 = (64 - flyingSpring->step) >> 2;
|
||||||
|
|
||||||
|
if (r1 > 3) {
|
||||||
|
if (r1 > 6) {
|
||||||
|
r1 = 6;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
#ifndef NON_MATCHING
|
||||||
|
do
|
||||||
|
r1 = 4;
|
||||||
|
while (0);
|
||||||
|
#else
|
||||||
|
r1 = 4;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
flyingSpring->step += r1;
|
||||||
|
if (flyingSpring->step >= 64) {
|
||||||
|
sub_807C4EC(flyingSpring);
|
||||||
|
}
|
||||||
|
UpdateSharedFlyingSpringAnimation();
|
||||||
|
RenderFlyingSpring(flyingSpring);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C504(Sprite_FlyingSpring *);
|
||||||
|
|
||||||
|
static void sub_807C360(void)
|
||||||
|
{
|
||||||
|
Sprite_FlyingSpring *flyingSpring = TASK_DATA(gCurTask);
|
||||||
|
flyingSpring->step += 8;
|
||||||
|
if (flyingSpring->step == 128) {
|
||||||
|
sub_807C504(flyingSpring);
|
||||||
|
} else if (flyingSpring->step > 128) {
|
||||||
|
flyingSpring->qOffsetY = SIN_24_8(flyingSpring->step * 4) * 6;
|
||||||
|
} else {
|
||||||
|
flyingSpring->qOffsetY = SIN_24_8(flyingSpring->step * 4) * 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateSharedFlyingSpringAnimation();
|
||||||
|
RenderFlyingSpring(flyingSpring);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C3DC(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
if (gPlayer.frameInput & gPlayerControls.jump) {
|
||||||
|
if (!(flyingSpring->state & STATE_JUMPED)) {
|
||||||
|
if (!(flyingSpring->state & STATE_MOVING_UP)) {
|
||||||
|
flyingSpring->state |= STATE_MOVING_UP;
|
||||||
|
} else {
|
||||||
|
flyingSpring->state &= ~STATE_MOVING_UP;
|
||||||
|
flyingSpring->state |= STATE_JUMPED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool32 sub_807C424(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
s16 springScreenX, playerScreenX, sprintScreenY, playerScreenY;
|
||||||
|
if (gPlayer.moveState & 0x80 || gPlayer.qSpeedAirY <= 0) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
springScreenX = flyingSpring->x - gCamera.x;
|
||||||
|
sprintScreenY = flyingSpring->y - gCamera.y;
|
||||||
|
playerScreenX = I(gPlayer.qWorldX) - gCamera.x;
|
||||||
|
playerScreenY = I(gPlayer.qWorldY) - gCamera.y;
|
||||||
|
if (springScreenX - 20 <= playerScreenX && springScreenX + 20 >= playerScreenX) {
|
||||||
|
if (sprintScreenY - 12 <= playerScreenY && sprintScreenY + 12 >= playerScreenY) {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C4A0(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
gPlayer.transition = PLTRANS_PROPELLER_SPRING;
|
||||||
|
if (flyingSpring->state & 1)
|
||||||
|
gPlayer.qSpeedAirY = -Q(5.5);
|
||||||
|
else
|
||||||
|
gPlayer.qSpeedAirY = -Q(5.5);
|
||||||
|
flyingSpring->step = 0;
|
||||||
|
flyingSpring->state = 0;
|
||||||
|
m4aSongNumStart(SE_284);
|
||||||
|
gCurTask->main = sub_807C2E0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C6E4(void);
|
||||||
|
|
||||||
|
static void sub_807C4EC(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
flyingSpring->step = 0;
|
||||||
|
gCurTask->main = sub_807C6E4;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C504(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
flyingSpring->qOffsetX = 0;
|
||||||
|
flyingSpring->qOffsetY = 0;
|
||||||
|
flyingSpring->step = 0;
|
||||||
|
gCurTask->main = Task_Interactable085;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C52C(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
if (gPlayer.frameInput & gPlayerControls.jump) {
|
||||||
|
flyingSpring->state |= STATE_JUMPED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void RenderFlyingSpring(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
Sprite *sprite = GetSharedFlyingSpringSprite();
|
||||||
|
sprite->x = flyingSpring->x - gCamera.x + I(flyingSpring->qOffsetX);
|
||||||
|
sprite->y = flyingSpring->y - gCamera.y + I(flyingSpring->qOffsetY);
|
||||||
|
|
||||||
|
DisplaySprite(sprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool32 sub_807C598(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
s32 springScreenX, springScreenY;
|
||||||
|
s16 x, y;
|
||||||
|
springScreenX = flyingSpring->x;
|
||||||
|
springScreenX -= gCamera.x;
|
||||||
|
springScreenY = flyingSpring->y;
|
||||||
|
springScreenY -= gCamera.y;
|
||||||
|
|
||||||
|
x = springScreenX;
|
||||||
|
y = springScreenY;
|
||||||
|
if (x < -(CAM_REGION_WIDTH / 2) || x > (DISPLAY_WIDTH + (CAM_REGION_WIDTH / 2)) || y < -(CAM_REGION_WIDTH / 2)
|
||||||
|
|| y > (DISPLAY_HEIGHT + (CAM_REGION_WIDTH / 2))) {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C5E0(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
flyingSpring->base.me->x = flyingSpring->base.meX;
|
||||||
|
TaskDestroy(gCurTask);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Sprite *GetSharedFlyingSpringSprite(void)
|
||||||
|
{
|
||||||
|
EntitiesManager *em = TASK_DATA(TASK_PARENT(gCurTask));
|
||||||
|
SkyCanyonLevelTask *level = TASK_DATA(em->levelTask);
|
||||||
|
return &level->spring;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void UpdateSharedFlyingSpringAnimation(void)
|
||||||
|
{
|
||||||
|
EntitiesManager *em = TASK_DATA(TASK_PARENT(gCurTask));
|
||||||
|
SkyCanyonLevelTask *level = TASK_DATA(em->levelTask);
|
||||||
|
|
||||||
|
level->visibleFlyingSprings++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreateEntity_PropellerSpring(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
|
||||||
|
{
|
||||||
|
Task *t = TaskCreate(Task_Interactable085, sizeof(Sprite_FlyingSpring), 0x2010, 0, TaskDestructor_Interactable085);
|
||||||
|
Sprite_FlyingSpring *flyingSpring = TASK_DATA(t);
|
||||||
|
flyingSpring->x = TO_WORLD_POS(me->x, spriteRegionX);
|
||||||
|
flyingSpring->y = TO_WORLD_POS(me->y, spriteRegionY);
|
||||||
|
|
||||||
|
flyingSpring->qOffsetX = 0;
|
||||||
|
flyingSpring->qOffsetY = 0;
|
||||||
|
flyingSpring->step = 0;
|
||||||
|
|
||||||
|
flyingSpring->base.regionX = spriteRegionX;
|
||||||
|
flyingSpring->base.regionY = spriteRegionY;
|
||||||
|
flyingSpring->base.me = me;
|
||||||
|
flyingSpring->base.meX = me->x;
|
||||||
|
flyingSpring->base.id = spriteY;
|
||||||
|
SET_MAP_ENTITY_INITIALIZED(me);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C72C(Sprite_FlyingSpring *);
|
||||||
|
|
||||||
|
static void sub_807C6E4(void)
|
||||||
|
{
|
||||||
|
Sprite_FlyingSpring *flyingSpring = TASK_DATA(gCurTask);
|
||||||
|
sub_807C3DC(flyingSpring);
|
||||||
|
|
||||||
|
if (++flyingSpring->step > 0) {
|
||||||
|
sub_807C72C(flyingSpring);
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateSharedFlyingSpringAnimation();
|
||||||
|
RenderFlyingSpring(flyingSpring);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void TaskDestructor_Interactable085(Task *t)
|
||||||
|
{
|
||||||
|
// unused
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C744(void);
|
||||||
|
|
||||||
|
static void sub_807C72C(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
flyingSpring->step = 64;
|
||||||
|
gCurTask->main = sub_807C744;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C7A0(Sprite_FlyingSpring *);
|
||||||
|
|
||||||
|
static void sub_807C744(void)
|
||||||
|
{
|
||||||
|
Sprite_FlyingSpring *flyingSpring = TASK_DATA(gCurTask);
|
||||||
|
flyingSpring->qOffsetY = SIN_24_8(flyingSpring->step * 4) * 16;
|
||||||
|
sub_807C3DC(flyingSpring);
|
||||||
|
|
||||||
|
flyingSpring->step += 8;
|
||||||
|
if ((s8)flyingSpring->step < 0) {
|
||||||
|
sub_807C7A0(flyingSpring);
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateSharedFlyingSpringAnimation();
|
||||||
|
RenderFlyingSpring(flyingSpring);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_807C7A0(Sprite_FlyingSpring *flyingSpring)
|
||||||
|
{
|
||||||
|
flyingSpring->step = 128;
|
||||||
|
gCurTask->main = sub_807C360;
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
#include "game/shared/stage/camera.h"
|
#include "game/shared/stage/camera.h"
|
||||||
|
|
||||||
#include "game/sa2/stage/interactables/sky_canyon/propeller.h"
|
#include "game/sa2/stage/interactables/sky_canyon/propeller.h"
|
||||||
#include "game/sa2/stage/interactables/sky_canyon_init.h"
|
#include "game/sa2/stage/interactables/sky_canyon_level_task.h"
|
||||||
|
|
||||||
#include "constants/sa2/animations.h"
|
#include "constants/sa2/animations.h"
|
||||||
#include "constants/sa2/char_states.h"
|
#include "constants/sa2/char_states.h"
|
||||||
@@ -43,7 +43,7 @@ static void Render(Sprite_Propeller *);
|
|||||||
static void StartPlayerFloatingTask(Sprite_Propeller *);
|
static void StartPlayerFloatingTask(Sprite_Propeller *);
|
||||||
static bool32 ShouldDespawn(Sprite_Propeller *);
|
static bool32 ShouldDespawn(Sprite_Propeller *);
|
||||||
static void DestroyPropeller(Sprite_Propeller *);
|
static void DestroyPropeller(Sprite_Propeller *);
|
||||||
Sprite_OnInit_SkyCanyon *sub_807BA54(void);
|
SkyCanyonLevelTask *sub_807BA54(void);
|
||||||
static void TaskDestructor_GiantPropeller(Task *);
|
static void TaskDestructor_GiantPropeller(Task *);
|
||||||
static bool32 sub_807B9F0(Sprite_Propeller *);
|
static bool32 sub_807B9F0(Sprite_Propeller *);
|
||||||
|
|
||||||
@@ -314,18 +314,18 @@ static void DestroyPropeller(Sprite_Propeller *propeller)
|
|||||||
TaskDestroy(gCurTask);
|
TaskDestroy(gCurTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
Sprite_OnInit_SkyCanyon *sub_807BA54(void)
|
SkyCanyonLevelTask *sub_807BA54(void)
|
||||||
{
|
{
|
||||||
EntitiesManager *em = TASK_DATA(TASK_PARENT(gCurTask));
|
EntitiesManager *em = TASK_DATA(TASK_PARENT(gCurTask));
|
||||||
return TASK_DATA(em->preInit);
|
return TASK_DATA(em->levelTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_807BA70(void)
|
static void sub_807BA70(void)
|
||||||
{
|
{
|
||||||
EntitiesManager *em = TASK_DATA(TASK_PARENT(gCurTask));
|
EntitiesManager *em = TASK_DATA(TASK_PARENT(gCurTask));
|
||||||
Sprite_OnInit_SkyCanyon *level = TASK_DATA(em->preInit);
|
SkyCanyonLevelTask *level = TASK_DATA(em->levelTask);
|
||||||
|
|
||||||
level->unk62++;
|
level->visiblePropellers++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateEntity_Propeller(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
|
void CreateEntity_Propeller(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
|
||||||
|
|||||||
@@ -1,293 +0,0 @@
|
|||||||
#include "global.h"
|
|
||||||
|
|
||||||
#include "trig.h"
|
|
||||||
#include "lib/m4a/m4a.h"
|
|
||||||
|
|
||||||
#include "game/shared/stage/entities_manager.h"
|
|
||||||
|
|
||||||
#include "game/sa2/stage/interactables/sky_canyon/propeller_spring.h"
|
|
||||||
#include "game/sa2/stage/interactables/sky_canyon_init.h"
|
|
||||||
|
|
||||||
#include "game/sa2/stage/player_controls.h"
|
|
||||||
#include "game/shared/stage/player.h"
|
|
||||||
#include "game/shared/stage/camera.h"
|
|
||||||
|
|
||||||
#include "constants/sa2/player_transitions.h"
|
|
||||||
#include "constants/sa2/songs.h"
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
SpriteBase base;
|
|
||||||
Sprite sprite;
|
|
||||||
s32 unk3C;
|
|
||||||
s32 unk40;
|
|
||||||
s16 unk44;
|
|
||||||
s16 unk46;
|
|
||||||
u8 unk48;
|
|
||||||
u8 unk49;
|
|
||||||
} Sprite_IA85;
|
|
||||||
|
|
||||||
static bool32 sub_807C424(Sprite_IA85 *);
|
|
||||||
static void sub_807C4A0(Sprite_IA85 *);
|
|
||||||
static bool32 sub_807C598(Sprite_IA85 *);
|
|
||||||
static void sub_807C5E0(Sprite_IA85 *);
|
|
||||||
static void sub_807C614(void);
|
|
||||||
static void sub_807C558(Sprite_IA85 *);
|
|
||||||
static void TaskDestructor_Interactable085(Task *);
|
|
||||||
|
|
||||||
static void Task_Interactable085(void)
|
|
||||||
{
|
|
||||||
Sprite_IA85 *ia85 = TASK_DATA(gCurTask);
|
|
||||||
ia85->unk46 = SIN_24_8(ia85->unk49 * 4) * 2;
|
|
||||||
ia85->unk49 += 2;
|
|
||||||
if (sub_807C424(ia85)) {
|
|
||||||
sub_807C4A0(ia85);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sub_807C598(ia85)) {
|
|
||||||
sub_807C5E0(ia85);
|
|
||||||
} else {
|
|
||||||
sub_807C614();
|
|
||||||
sub_807C558(ia85);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C52C(Sprite_IA85 *);
|
|
||||||
static void sub_807C4EC(Sprite_IA85 *);
|
|
||||||
|
|
||||||
static void sub_807C2E0(void)
|
|
||||||
{
|
|
||||||
s16 r1;
|
|
||||||
Sprite_IA85 *ia85 = TASK_DATA(gCurTask);
|
|
||||||
ia85->unk46 = SIN_24_8(ia85->unk49 * 4) * 16;
|
|
||||||
sub_807C52C(ia85);
|
|
||||||
|
|
||||||
r1 = (0x40 - ia85->unk49) >> 2;
|
|
||||||
|
|
||||||
if (r1 > 3) {
|
|
||||||
if (r1 > 6) {
|
|
||||||
r1 = 6;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
#ifndef NON_MATCHING
|
|
||||||
do
|
|
||||||
r1 = 4;
|
|
||||||
while (0);
|
|
||||||
#else
|
|
||||||
r1 = 4;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
ia85->unk49 += r1;
|
|
||||||
if (ia85->unk49 > 63) {
|
|
||||||
sub_807C4EC(ia85);
|
|
||||||
}
|
|
||||||
sub_807C614();
|
|
||||||
sub_807C558(ia85);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C504(Sprite_IA85 *);
|
|
||||||
|
|
||||||
static void sub_807C360(void)
|
|
||||||
{
|
|
||||||
Sprite_IA85 *ia85 = TASK_DATA(gCurTask);
|
|
||||||
ia85->unk49 += 8;
|
|
||||||
if (ia85->unk49 == 0x80) {
|
|
||||||
sub_807C504(ia85);
|
|
||||||
} else if (ia85->unk49 > 0x80) {
|
|
||||||
ia85->unk46 = SIN_24_8(ia85->unk49 * 4) * 6;
|
|
||||||
} else {
|
|
||||||
ia85->unk46 = SIN_24_8(ia85->unk49 * 4) * 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub_807C614();
|
|
||||||
sub_807C558(ia85);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C3DC(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
if (gPlayer.frameInput & gPlayerControls.jump) {
|
|
||||||
if (!(ia85->unk48 & 2)) {
|
|
||||||
if (!(ia85->unk48 & 1)) {
|
|
||||||
ia85->unk48 |= 1;
|
|
||||||
} else {
|
|
||||||
ia85->unk48 &= ~0x1;
|
|
||||||
ia85->unk48 |= 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool32 sub_807C424(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
s16 temp, temp2, temp3, temp4;
|
|
||||||
if (gPlayer.moveState & 0x80 || gPlayer.qSpeedAirY <= 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
temp = ia85->unk3C - gCamera.x;
|
|
||||||
temp3 = ia85->unk40 - gCamera.y;
|
|
||||||
temp2 = I(gPlayer.qWorldX) - gCamera.x;
|
|
||||||
temp4 = I(gPlayer.qWorldY) - gCamera.y;
|
|
||||||
if (temp - 0x14 <= temp2 && temp + 0x14 >= temp2) {
|
|
||||||
if (temp3 - 0xC <= temp4 && temp3 + 0xC >= temp4) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C4A0(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
gPlayer.transition = PLTRANS_PROPELLER_SPRING;
|
|
||||||
if (ia85->unk48 & 1)
|
|
||||||
gPlayer.qSpeedAirY = -Q(5.5);
|
|
||||||
else
|
|
||||||
gPlayer.qSpeedAirY = -Q(5.5);
|
|
||||||
ia85->unk49 = 0;
|
|
||||||
ia85->unk48 = 0;
|
|
||||||
m4aSongNumStart(SE_284);
|
|
||||||
gCurTask->main = sub_807C2E0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C6E4(void);
|
|
||||||
|
|
||||||
static void sub_807C4EC(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
ia85->unk49 = 0;
|
|
||||||
gCurTask->main = sub_807C6E4;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C504(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
ia85->unk44 = 0;
|
|
||||||
ia85->unk46 = 0;
|
|
||||||
ia85->unk49 = 0;
|
|
||||||
gCurTask->main = Task_Interactable085;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C52C(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
if (gPlayer.frameInput & gPlayerControls.jump) {
|
|
||||||
ia85->unk48 |= 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static Sprite *sub_807C5F8(void);
|
|
||||||
|
|
||||||
static void sub_807C558(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
Sprite *sprite = sub_807C5F8();
|
|
||||||
sprite->x = ia85->unk3C - gCamera.x + I(ia85->unk44);
|
|
||||||
sprite->y = ia85->unk40 - gCamera.y + I(ia85->unk46);
|
|
||||||
|
|
||||||
DisplaySprite(sprite);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool32 sub_807C598(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
s32 temp1, temp;
|
|
||||||
s16 temp2, temp3;
|
|
||||||
temp1 = ia85->unk3C;
|
|
||||||
temp1 -= gCamera.x;
|
|
||||||
temp = ia85->unk40;
|
|
||||||
temp -= gCamera.y;
|
|
||||||
|
|
||||||
temp2 = temp1;
|
|
||||||
temp3 = temp;
|
|
||||||
if (temp2 < -128 || temp2 > (DISPLAY_WIDTH + 128) || temp3 < -128 || temp3 > (DISPLAY_HEIGHT + 128)) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C5E0(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
ia85->base.me->x = ia85->base.meX;
|
|
||||||
TaskDestroy(gCurTask);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Sprite *sub_807C5F8(void)
|
|
||||||
{
|
|
||||||
EntitiesManager *em = TASK_DATA(TASK_PARENT(gCurTask));
|
|
||||||
Sprite_OnInit_SkyCanyon *level = TASK_DATA(em->preInit);
|
|
||||||
return &level->spring;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C614(void)
|
|
||||||
{
|
|
||||||
EntitiesManager *em = TASK_DATA(TASK_PARENT(gCurTask));
|
|
||||||
Sprite_OnInit_SkyCanyon *level = TASK_DATA(em->preInit);
|
|
||||||
|
|
||||||
level->unk60++;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CreateEntity_PropellerSpring(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
|
|
||||||
{
|
|
||||||
Task *t = TaskCreate(Task_Interactable085, sizeof(Sprite_IA85), 0x2010, 0, TaskDestructor_Interactable085);
|
|
||||||
Sprite_IA85 *ia85 = TASK_DATA(t);
|
|
||||||
ia85->unk3C = TO_WORLD_POS(me->x, spriteRegionX);
|
|
||||||
ia85->unk40 = TO_WORLD_POS(me->y, spriteRegionY);
|
|
||||||
|
|
||||||
ia85->unk44 = 0;
|
|
||||||
ia85->unk46 = 0;
|
|
||||||
ia85->unk49 = 0;
|
|
||||||
|
|
||||||
ia85->base.regionX = spriteRegionX;
|
|
||||||
ia85->base.regionY = spriteRegionY;
|
|
||||||
ia85->base.me = me;
|
|
||||||
ia85->base.meX = me->x;
|
|
||||||
ia85->base.id = spriteY;
|
|
||||||
SET_MAP_ENTITY_INITIALIZED(me);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C72C(Sprite_IA85 *);
|
|
||||||
|
|
||||||
static void sub_807C6E4(void)
|
|
||||||
{
|
|
||||||
Sprite_IA85 *ia85 = TASK_DATA(gCurTask);
|
|
||||||
sub_807C3DC(ia85);
|
|
||||||
|
|
||||||
if (++ia85->unk49 > 0) {
|
|
||||||
sub_807C72C(ia85);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub_807C614();
|
|
||||||
sub_807C558(ia85);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void TaskDestructor_Interactable085(Task *t)
|
|
||||||
{
|
|
||||||
// unused
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C744(void);
|
|
||||||
|
|
||||||
static void sub_807C72C(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
ia85->unk49 = 0x40;
|
|
||||||
gCurTask->main = sub_807C744;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C7A0(Sprite_IA85 *);
|
|
||||||
|
|
||||||
static void sub_807C744(void)
|
|
||||||
{
|
|
||||||
Sprite_IA85 *ia85 = TASK_DATA(gCurTask);
|
|
||||||
ia85->unk46 = SIN_24_8(ia85->unk49 * 4) * 16;
|
|
||||||
sub_807C3DC(ia85);
|
|
||||||
|
|
||||||
ia85->unk49 += 8;
|
|
||||||
if ((s8)ia85->unk49 < 0) {
|
|
||||||
sub_807C7A0(ia85);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub_807C614();
|
|
||||||
sub_807C558(ia85);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sub_807C7A0(Sprite_IA85 *ia85)
|
|
||||||
{
|
|
||||||
ia85->unk49 = 0x80;
|
|
||||||
gCurTask->main = sub_807C360;
|
|
||||||
}
|
|
||||||
+14
-20
@@ -2,26 +2,20 @@
|
|||||||
#include "sprite.h"
|
#include "sprite.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
|
||||||
#include "game/sa2/stage/interactables/sky_canyon_init.h"
|
#include "game/sa2/stage/interactables/sky_canyon_level_task.h"
|
||||||
|
|
||||||
#include "constants/sa2/animations.h"
|
#include "constants/sa2/animations.h"
|
||||||
|
|
||||||
static void Task_80808DC(void);
|
static void Task_UpdateAnimations(void);
|
||||||
|
|
||||||
/* sub_80807CC is pointed to by 'gSpriteTileInits_PreStageEntry' inside collision.s
|
Task *CreateLevelTask_SkyCanyon(void)
|
||||||
* Which itself is referenced by 'CreateStageEntitiesManager'
|
|
||||||
* It is called on stage-entry of ONLY Sky Canyon Acts 1 & 2,
|
|
||||||
* the other pointers inside 'gSpriteTileInits_PreStageEntry' are empty.
|
|
||||||
*/
|
|
||||||
|
|
||||||
Task *sub_80807CC(void)
|
|
||||||
{
|
{
|
||||||
Task *t = TaskCreate(Task_80808DC, sizeof(Sprite_OnInit_SkyCanyon), 0x2001, 0, NULL);
|
Task *t = TaskCreate(Task_UpdateAnimations, sizeof(SkyCanyonLevelTask), 0x2001, 0, NULL);
|
||||||
Sprite_OnInit_SkyCanyon *init = TASK_DATA(t);
|
SkyCanyonLevelTask *init = TASK_DATA(t);
|
||||||
Sprite *spring, *propellor;
|
Sprite *spring, *propellor;
|
||||||
|
|
||||||
init->unk60 = 0;
|
init->visibleFlyingSprings = 0;
|
||||||
init->unk62 = 0;
|
init->visiblePropellers = 0;
|
||||||
|
|
||||||
spring = &init->spring;
|
spring = &init->spring;
|
||||||
SPRITE_INIT_WITHOUT_ANIM_OR_VRAM(spring, 18, 2, 0);
|
SPRITE_INIT_WITHOUT_ANIM_OR_VRAM(spring, 18, 2, 0);
|
||||||
@@ -40,17 +34,17 @@ Task *sub_80807CC(void)
|
|||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Task_80808DC(void)
|
static void Task_UpdateAnimations(void)
|
||||||
{
|
{
|
||||||
Sprite_OnInit_SkyCanyon *init = TASK_DATA(gCurTask);
|
SkyCanyonLevelTask *init = TASK_DATA(gCurTask);
|
||||||
|
|
||||||
if (init->unk60) {
|
if (init->visibleFlyingSprings != 0) {
|
||||||
UpdateSpriteAnimation(&init->spring);
|
UpdateSpriteAnimation(&init->spring);
|
||||||
}
|
}
|
||||||
init->unk60 = 0;
|
init->visibleFlyingSprings = 0;
|
||||||
|
|
||||||
if (init->unk62 != 0) {
|
if (init->visiblePropellers != 0) {
|
||||||
UpdateSpriteAnimation(&init->propellor);
|
UpdateSpriteAnimation(&init->propellor);
|
||||||
}
|
}
|
||||||
init->unk62 = 0;
|
init->visiblePropellers = 0;
|
||||||
}
|
}
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
#include "game/sa2/stage/interactables/sky_canyon/fan.h"
|
#include "game/sa2/stage/interactables/sky_canyon/fan.h"
|
||||||
#include "game/sa2/stage/interactables/sky_canyon/small_windmill.h"
|
#include "game/sa2/stage/interactables/sky_canyon/small_windmill.h"
|
||||||
#include "game/sa2/stage/interactables/sky_canyon/whirlwind.h"
|
#include "game/sa2/stage/interactables/sky_canyon/whirlwind.h"
|
||||||
#include "game/sa2/stage/interactables/sky_canyon/propeller_spring.h"
|
#include "game/sa2/stage/interactables/sky_canyon/flying_spring.h"
|
||||||
|
|
||||||
#include "game/sa2/stage/interactables/techno_base/light_globe.h"
|
#include "game/sa2/stage/interactables/techno_base/light_globe.h"
|
||||||
#include "game/sa2/stage/interactables/techno_base/light_bridge.h"
|
#include "game/sa2/stage/interactables/techno_base/light_bridge.h"
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
#include "game/sa2/stage/interactables/105.h"
|
#include "game/sa2/stage/interactables/105.h"
|
||||||
#include "game/sa2/stage/interactables/special_ring.h"
|
#include "game/sa2/stage/interactables/special_ring.h"
|
||||||
#include "game/sa2/stage/interactables/collect_rings_lap_trigger.h"
|
#include "game/sa2/stage/interactables/collect_rings_lap_trigger.h"
|
||||||
#include "game/sa2/stage/interactables/sky_canyon_init.h"
|
#include "game/sa2/stage/interactables/sky_canyon_level_task.h"
|
||||||
|
|
||||||
#include "game/sa2/stage/mystery_itembox.h"
|
#include "game/sa2/stage/mystery_itembox.h"
|
||||||
|
|
||||||
@@ -800,16 +800,23 @@ const MapEntityInit gSpriteInits_CollectRingsInteractables[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#ifndef COLLECT_RINGS_ROM
|
#ifndef COLLECT_RINGS_ROM
|
||||||
const StagePreInitFunc gSpriteTileInits_PreStageEntry[] = {
|
const StagePreInitFunc sLevelTaskInits[] = {
|
||||||
NULL, NULL, NULL, NULL, // Leaf Forest
|
// Leaf Forest
|
||||||
NULL, NULL, NULL, NULL, // Hot Crater
|
NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL, // Music Plant
|
// Hot Crater
|
||||||
NULL, NULL, NULL, NULL, // Ice Paradise
|
NULL, NULL, NULL, NULL,
|
||||||
sub_80807CC, sub_80807CC, NULL, NULL, // Sky Canyon
|
// Music Plant
|
||||||
NULL, NULL, NULL, NULL, // Techno Base
|
NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL, // Egg Utopia
|
// Ice Paradise
|
||||||
NULL, NULL, NULL, NULL, // Final Zone
|
NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL,
|
// Sky Canyon
|
||||||
|
CreateLevelTask_SkyCanyon, CreateLevelTask_SkyCanyon, NULL, NULL,
|
||||||
|
// Techno Base
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
// Egg Utopia
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
// Final Zone
|
||||||
|
NULL, NULL, NULL, NULL, NULL, NULL
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@@ -842,10 +849,10 @@ void CreateStageEntitiesManager(void)
|
|||||||
em->enemies = decompBuf;
|
em->enemies = decompBuf;
|
||||||
|
|
||||||
#if (GAME == GAME_SA2)
|
#if (GAME == GAME_SA2)
|
||||||
em->preInit = NULL;
|
em->levelTask = NULL;
|
||||||
|
|
||||||
if (gSpriteTileInits_PreStageEntry[gCurrentLevel]) {
|
if (sLevelTaskInits[gCurrentLevel]) {
|
||||||
em->preInit = gSpriteTileInits_PreStageEntry[gCurrentLevel]();
|
em->levelTask = sLevelTaskInits[gCurrentLevel]();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in new issue
Block a user