mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-06-26 17:31:52 -04:00
Rename prop list symbols
This commit is contained in:
+118
-118
@@ -2546,22 +2546,22 @@ u8 func041b_intro_041b[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP2)
|
||||
enable_object(OBJ_JUMPSHIP2)
|
||||
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
||||
object_do_animation(0x00ca, OBJ_JUMPSHIP2, 0x04, 0xffff)
|
||||
show_object(OBJ_POLICECAR)
|
||||
enable_object(OBJ_POLICECAR)
|
||||
set_object_flag3(OBJ_POLICECAR, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0122, OBJ_POLICECAR, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCOP3)
|
||||
enable_object(OBJ_HOVERCOP3)
|
||||
set_object_flag3(OBJ_HOVERCOP3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0123, OBJ_HOVERCOP3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCAR3)
|
||||
enable_object(OBJ_HOVERCAR3)
|
||||
set_object_flag3(OBJ_HOVERCAR3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0124, OBJ_HOVERCAR3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERMOTO3)
|
||||
enable_object(OBJ_HOVERMOTO3)
|
||||
set_object_flag3(OBJ_HOVERMOTO3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0125, OBJ_HOVERMOTO3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCAB3)
|
||||
enable_object(OBJ_HOVERCAB3)
|
||||
set_object_flag3(OBJ_HOVERCAB3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0126, OBJ_HOVERCAB3, 0x04, 0xffff)
|
||||
fade_to_color(0x000000ff, 0)
|
||||
@@ -2576,12 +2576,12 @@ u8 func041b_intro_041b[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP2)
|
||||
hide_object(OBJ_POLICECAR)
|
||||
hide_object(OBJ_HOVERCOP3)
|
||||
hide_object(OBJ_HOVERCAR3)
|
||||
hide_object(OBJ_HOVERMOTO3)
|
||||
hide_object(OBJ_HOVERCAB3)
|
||||
disable_object(OBJ_JUMPSHIP2)
|
||||
disable_object(OBJ_POLICECAR)
|
||||
disable_object(OBJ_HOVERCOP3)
|
||||
disable_object(OBJ_HOVERCAR3)
|
||||
disable_object(OBJ_HOVERMOTO3)
|
||||
disable_object(OBJ_HOVERCAB3)
|
||||
label(0x36)
|
||||
return
|
||||
endlist
|
||||
@@ -2593,25 +2593,25 @@ u8 func041a_intro_041a[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP2)
|
||||
enable_object(OBJ_JUMPSHIP2)
|
||||
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
||||
object_do_animation(0x00c8, OBJ_JUMPSHIP2, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERTAXI2)
|
||||
enable_object(OBJ_HOVERTAXI2)
|
||||
set_object_flag3(OBJ_HOVERTAXI2, OBJFLAG3_00000010)
|
||||
object_do_animation(0x011c, OBJ_HOVERTAXI2, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCOP3)
|
||||
enable_object(OBJ_HOVERCOP3)
|
||||
set_object_flag3(OBJ_HOVERCOP3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x011d, OBJ_HOVERCOP3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCAR3)
|
||||
enable_object(OBJ_HOVERCAR3)
|
||||
set_object_flag3(OBJ_HOVERCAR3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x011e, OBJ_HOVERCAR3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERMOTO3)
|
||||
enable_object(OBJ_HOVERMOTO3)
|
||||
set_object_flag3(OBJ_HOVERMOTO3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x011f, OBJ_HOVERMOTO3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCAB3)
|
||||
enable_object(OBJ_HOVERCAB3)
|
||||
set_object_flag3(OBJ_HOVERCAB3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0120, OBJ_HOVERCAB3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERTRUCK3)
|
||||
enable_object(OBJ_HOVERTRUCK3)
|
||||
set_object_flag3(OBJ_HOVERTRUCK3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0121, OBJ_HOVERTRUCK3, 0x04, 0xffff)
|
||||
|
||||
@@ -2621,13 +2621,13 @@ u8 func041a_intro_041a[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP2)
|
||||
hide_object(OBJ_HOVERTAXI2)
|
||||
hide_object(OBJ_HOVERCOP3)
|
||||
hide_object(OBJ_HOVERCAR3)
|
||||
hide_object(OBJ_HOVERMOTO3)
|
||||
hide_object(OBJ_HOVERCAB3)
|
||||
hide_object(OBJ_HOVERTRUCK3)
|
||||
disable_object(OBJ_JUMPSHIP2)
|
||||
disable_object(OBJ_HOVERTAXI2)
|
||||
disable_object(OBJ_HOVERCOP3)
|
||||
disable_object(OBJ_HOVERCAR3)
|
||||
disable_object(OBJ_HOVERMOTO3)
|
||||
disable_object(OBJ_HOVERCAB3)
|
||||
disable_object(OBJ_HOVERTRUCK3)
|
||||
label(0x36)
|
||||
return
|
||||
endlist
|
||||
@@ -2639,16 +2639,16 @@ u8 func0419_intro_0419[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP2)
|
||||
enable_object(OBJ_JUMPSHIP2)
|
||||
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
||||
object_do_animation(0x00c6, OBJ_JUMPSHIP2, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERTAXI1)
|
||||
enable_object(OBJ_HOVERTAXI1)
|
||||
set_object_flag3(OBJ_HOVERTAXI1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0119, OBJ_HOVERTAXI1, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCOP3)
|
||||
enable_object(OBJ_HOVERCOP3)
|
||||
set_object_flag3(OBJ_HOVERCOP3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x011a, OBJ_HOVERCOP3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCAR3)
|
||||
enable_object(OBJ_HOVERCAR3)
|
||||
set_object_flag3(OBJ_HOVERCAR3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x011b, OBJ_HOVERCAR3, 0x04, 0xffff)
|
||||
|
||||
@@ -2658,10 +2658,10 @@ u8 func0419_intro_0419[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP2)
|
||||
hide_object(OBJ_HOVERTAXI1)
|
||||
hide_object(OBJ_HOVERCOP3)
|
||||
hide_object(OBJ_HOVERCAR3)
|
||||
disable_object(OBJ_JUMPSHIP2)
|
||||
disable_object(OBJ_HOVERTAXI1)
|
||||
disable_object(OBJ_HOVERCOP3)
|
||||
disable_object(OBJ_HOVERCAR3)
|
||||
label(0x36)
|
||||
return
|
||||
endlist
|
||||
@@ -2673,25 +2673,25 @@ u8 func041c_intro_041c[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP2)
|
||||
enable_object(OBJ_JUMPSHIP2)
|
||||
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
||||
object_do_animation(0x00cc, OBJ_JUMPSHIP2, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERTAXI1)
|
||||
enable_object(OBJ_HOVERTAXI1)
|
||||
set_object_flag3(OBJ_HOVERTAXI1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0127, OBJ_HOVERTAXI1, 0x04, 0xffff)
|
||||
|
||||
// Invalid object
|
||||
show_object(0x1d)
|
||||
enable_object(0x1d)
|
||||
set_object_flag3(0x1d, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0128, 0x1d, 0x04, 0xffff)
|
||||
|
||||
show_object(OBJ_HOVERCOP3)
|
||||
enable_object(OBJ_HOVERCOP3)
|
||||
set_object_flag3(OBJ_HOVERCOP3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0129, OBJ_HOVERCOP3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERCAR3)
|
||||
enable_object(OBJ_HOVERCAR3)
|
||||
set_object_flag3(OBJ_HOVERCAR3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x012a, OBJ_HOVERCAR3, 0x04, 0xffff)
|
||||
show_object(OBJ_HOVERMOTO3)
|
||||
enable_object(OBJ_HOVERMOTO3)
|
||||
set_object_flag3(OBJ_HOVERMOTO3, OBJFLAG3_00000010)
|
||||
object_do_animation(0x012b, OBJ_HOVERMOTO3, 0x04, 0xffff)
|
||||
|
||||
@@ -2701,12 +2701,12 @@ u8 func041c_intro_041c[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP2)
|
||||
hide_object(OBJ_HOVERTAXI1)
|
||||
hide_object(0x1d)
|
||||
hide_object(OBJ_HOVERCOP3)
|
||||
hide_object(OBJ_HOVERCAR3)
|
||||
hide_object(OBJ_HOVERMOTO3)
|
||||
disable_object(OBJ_JUMPSHIP2)
|
||||
disable_object(OBJ_HOVERTAXI1)
|
||||
disable_object(0x1d)
|
||||
disable_object(OBJ_HOVERCOP3)
|
||||
disable_object(OBJ_HOVERCAR3)
|
||||
disable_object(OBJ_HOVERMOTO3)
|
||||
label(0x36)
|
||||
return
|
||||
endlist
|
||||
@@ -2721,13 +2721,13 @@ u8 func041d_intro_041d[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP2)
|
||||
enable_object(OBJ_JUMPSHIP2)
|
||||
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
||||
object_do_animation(0x00ce, OBJ_JUMPSHIP2, 0x01, 0xffff)
|
||||
show_object(OBJ_HOVERTAXI1)
|
||||
enable_object(OBJ_HOVERTAXI1)
|
||||
set_object_flag3(OBJ_HOVERTAXI1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x012c, OBJ_HOVERTAXI1, 0x04, 0xffff)
|
||||
show_object(0x1d)
|
||||
enable_object(0x1d)
|
||||
set_object_flag3(0x1d, OBJFLAG3_00000010)
|
||||
object_do_animation(0x012d, 0x1d, 0x04, 0xffff)
|
||||
|
||||
@@ -2737,9 +2737,9 @@ u8 func041d_intro_041d[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP2)
|
||||
hide_object(OBJ_HOVERTAXI1)
|
||||
hide_object(0x1d)
|
||||
disable_object(OBJ_JUMPSHIP2)
|
||||
disable_object(OBJ_HOVERTAXI1)
|
||||
disable_object(0x1d)
|
||||
label(0x36)
|
||||
return
|
||||
endlist
|
||||
@@ -2876,7 +2876,7 @@ u8 func0422_intro_0423[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x00ef, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
set_tinted_glass_enabled(TRUE)
|
||||
@@ -2887,7 +2887,7 @@ u8 func0422_intro_0423[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
set_tinted_glass_enabled(FALSE)
|
||||
label(0x36)
|
||||
set_ailist(CHR_SELF, AILIST_INTRO_0426)
|
||||
@@ -2900,7 +2900,7 @@ u8 func0422_intro_0424[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x00fd, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
set_chr_chrflag(CHR_CASS, CHRCFLAG_HIDDEN)
|
||||
@@ -2917,7 +2917,7 @@ u8 func0422_intro_0424[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
unset_chr_chrflag(CHR_CASS, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_SECRETARY, CHRCFLAG_UNPLAYABLE)
|
||||
label(0x36)
|
||||
@@ -2931,7 +2931,7 @@ u8 func0422_intro_0425[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0100, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
object_do_animation(0x0102, OBJ_BANNER1, 0x04, 0xffff)
|
||||
@@ -2943,9 +2943,9 @@ u8 func0422_intro_0425[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
hide_object(OBJ_BANNER1)
|
||||
hide_object(OBJ_BANNER2)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_BANNER1)
|
||||
disable_object(OBJ_BANNER2)
|
||||
label(0x36)
|
||||
set_ailist(CHR_SELF, AILIST_INTRO_0423)
|
||||
endlist
|
||||
@@ -2957,13 +2957,13 @@ u8 func0422_intro_0426[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x012f, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
show_object(OBJ_BANNER1)
|
||||
enable_object(OBJ_BANNER1)
|
||||
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0131, OBJ_BANNER1, 0x04, 0xffff)
|
||||
show_object(OBJ_BANNER2)
|
||||
enable_object(OBJ_BANNER2)
|
||||
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0132, OBJ_BANNER2, 0x04, 0xffff)
|
||||
|
||||
@@ -2973,9 +2973,9 @@ u8 func0422_intro_0426[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
hide_object(OBJ_BANNER1)
|
||||
hide_object(OBJ_BANNER2)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_BANNER1)
|
||||
disable_object(OBJ_BANNER2)
|
||||
label(0x36)
|
||||
set_ailist(CHR_SELF, AILIST_INTRO_0429)
|
||||
endlist
|
||||
@@ -2987,16 +2987,16 @@ u8 func0422_intro_0427[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0134, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
show_object(OBJ_ROPE)
|
||||
enable_object(OBJ_ROPE)
|
||||
set_object_flag3(OBJ_ROPE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0135, OBJ_ROPE, 0x04, 0xffff)
|
||||
show_object(OBJ_BANNER1)
|
||||
enable_object(OBJ_BANNER1)
|
||||
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0136, OBJ_BANNER1, 0x04, 0xffff)
|
||||
show_object(OBJ_BANNER2)
|
||||
enable_object(OBJ_BANNER2)
|
||||
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0137, OBJ_BANNER2, 0x04, 0xffff)
|
||||
|
||||
@@ -3006,10 +3006,10 @@ u8 func0422_intro_0427[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
hide_object(OBJ_ROPE)
|
||||
hide_object(OBJ_BANNER1)
|
||||
hide_object(OBJ_BANNER2)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_ROPE)
|
||||
disable_object(OBJ_BANNER1)
|
||||
disable_object(OBJ_BANNER2)
|
||||
label(0x36)
|
||||
set_ailist(CHR_SELF, AILIST_INTRO_042A)
|
||||
endlist
|
||||
@@ -3021,7 +3021,7 @@ u8 func0422_intro_0428[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0104, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
set_object_flag2(OBJ_HOVERCOP1, OBJFLAG2_INVISIBLE)
|
||||
@@ -3041,7 +3041,7 @@ u8 func0422_intro_0428[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
unset_object_flag2(OBJ_HOVERCOP1, OBJFLAG2_INVISIBLE)
|
||||
unset_object_flag2(OBJ_HOVERCOP2, OBJFLAG2_INVISIBLE)
|
||||
unset_object_flag2(OBJ_HOVERCAR1, OBJFLAG2_INVISIBLE)
|
||||
@@ -3063,7 +3063,7 @@ u8 func0422_intro_0429[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0106, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
set_tinted_glass_enabled(TRUE)
|
||||
@@ -3074,7 +3074,7 @@ u8 func0422_intro_0429[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
set_tinted_glass_enabled(FALSE)
|
||||
label(0x36)
|
||||
set_ailist(CHR_SELF, AILIST_INTRO_0427)
|
||||
@@ -3086,14 +3086,14 @@ u8 func0422_intro_042a[] = {
|
||||
camera_movement(0x0107)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0108, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
||||
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x0109, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
|
||||
set_chr_hudpiece_visible(CHR_BOND, TRUE)
|
||||
show_object(OBJ_ROPE)
|
||||
enable_object(OBJ_ROPE)
|
||||
set_object_flag3(OBJ_ROPE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x010a, OBJ_ROPE, 0x04, 0xffff)
|
||||
|
||||
@@ -3102,8 +3102,8 @@ u8 func0422_intro_042a[] = {
|
||||
label(0x06)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
hide_object(OBJ_ROPE)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_ROPE)
|
||||
label(0x36)
|
||||
set_ailist(CHR_SELF, AILIST_INTRO_042B)
|
||||
endlist
|
||||
@@ -3114,20 +3114,20 @@ u8 func0422_intro_042b[] = {
|
||||
camera_movement(0x010b)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_JUMPSHIP1)
|
||||
enable_object(OBJ_JUMPSHIP1)
|
||||
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x010c, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
||||
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x010d, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
|
||||
set_chr_hudpiece_visible(CHR_BOND, TRUE)
|
||||
show_object(OBJ_ROPE)
|
||||
enable_object(OBJ_ROPE)
|
||||
set_object_flag3(OBJ_ROPE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x010e, OBJ_ROPE, 0x04, 0xffff)
|
||||
show_object(OBJ_BANNER1)
|
||||
enable_object(OBJ_BANNER1)
|
||||
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x010f, OBJ_BANNER1, 0x04, 0xffff)
|
||||
show_object(OBJ_BANNER2)
|
||||
enable_object(OBJ_BANNER2)
|
||||
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0118, OBJ_BANNER2, 0x04, 0xffff)
|
||||
|
||||
@@ -3136,10 +3136,10 @@ u8 func0422_intro_042b[] = {
|
||||
label(0x06)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_JUMPSHIP1)
|
||||
hide_object(OBJ_ROPE)
|
||||
hide_object(OBJ_BANNER1)
|
||||
hide_object(OBJ_BANNER2)
|
||||
disable_object(OBJ_JUMPSHIP1)
|
||||
disable_object(OBJ_ROPE)
|
||||
disable_object(OBJ_BANNER1)
|
||||
disable_object(OBJ_BANNER2)
|
||||
label(0x36)
|
||||
set_ailist(CHR_SELF, AILIST_INTRO_042C)
|
||||
endlist
|
||||
@@ -3165,8 +3165,8 @@ u8 func0422_intro_042d[] = {
|
||||
|
||||
label(0x06)
|
||||
label(0x36)
|
||||
show_object(OBJ_BANNER1)
|
||||
show_object(OBJ_BANNER2)
|
||||
enable_object(OBJ_BANNER1)
|
||||
enable_object(OBJ_BANNER2)
|
||||
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0161, OBJ_BANNER1, 0x08, 0xffff)
|
||||
|
||||
@@ -3634,19 +3634,19 @@ u8 func0422_intro_speaking[] = {
|
||||
*/
|
||||
u8 func1019_toggle_guards[] = {
|
||||
label(0x2c)
|
||||
hide_chr(0x01)
|
||||
hide_chr(0x02)
|
||||
hide_chr(0x0e)
|
||||
hide_chr(0x12)
|
||||
hide_chr(0x0f)
|
||||
hide_chr(0x10)
|
||||
hide_chr(0x11)
|
||||
hide_chr(0x13)
|
||||
hide_chr(0x03)
|
||||
hide_chr(0x04)
|
||||
hide_chr(0x14)
|
||||
hide_chr(0x15)
|
||||
hide_chr(0x16)
|
||||
disable_chr(0x01)
|
||||
disable_chr(0x02)
|
||||
disable_chr(0x0e)
|
||||
disable_chr(0x12)
|
||||
disable_chr(0x0f)
|
||||
disable_chr(0x10)
|
||||
disable_chr(0x11)
|
||||
disable_chr(0x13)
|
||||
disable_chr(0x03)
|
||||
disable_chr(0x04)
|
||||
disable_chr(0x14)
|
||||
disable_chr(0x15)
|
||||
disable_chr(0x16)
|
||||
|
||||
beginloop(0x04)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
@@ -3654,31 +3654,31 @@ u8 func1019_toggle_guards[] = {
|
||||
endloop(0x04)
|
||||
|
||||
label(0x2c)
|
||||
show_chr(0x01)
|
||||
enable_chr(0x01)
|
||||
yield
|
||||
show_chr(0x02)
|
||||
enable_chr(0x02)
|
||||
yield
|
||||
show_chr(0x0e)
|
||||
enable_chr(0x0e)
|
||||
yield
|
||||
show_chr(0x12)
|
||||
enable_chr(0x12)
|
||||
yield
|
||||
show_chr(0x0f)
|
||||
enable_chr(0x0f)
|
||||
yield
|
||||
show_chr(0x10)
|
||||
enable_chr(0x10)
|
||||
yield
|
||||
show_chr(0x11)
|
||||
enable_chr(0x11)
|
||||
yield
|
||||
show_chr(0x13)
|
||||
enable_chr(0x13)
|
||||
yield
|
||||
show_chr(0x03)
|
||||
enable_chr(0x03)
|
||||
yield
|
||||
show_chr(0x04)
|
||||
enable_chr(0x04)
|
||||
yield
|
||||
show_chr(0x14)
|
||||
enable_chr(0x14)
|
||||
yield
|
||||
show_chr(0x15)
|
||||
enable_chr(0x15)
|
||||
yield
|
||||
show_chr(0x16)
|
||||
enable_chr(0x16)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
|
||||
@@ -2411,7 +2411,7 @@ u8 func0412_outro[] = {
|
||||
play_temporary_track(MUSIC_EXTRACTION_OUTRO_SFX)
|
||||
camera_movement(0x0157)
|
||||
set_object_flag2(OBJ_HOVERCOPTER, OBJFLAG2_INVISIBLE)
|
||||
hide_object(OBJ_HOVERCOPTER)
|
||||
disable_object(OBJ_HOVERCOPTER)
|
||||
set_ailist(CHR_P1P2, GAILIST_IDLE)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN)
|
||||
@@ -2454,7 +2454,7 @@ u8 func0412_outro[] = {
|
||||
set_chr_hiddenflag(CHR_OUTRO_GUARD2, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x015c, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_OUTRO_GUARD2, 4)
|
||||
|
||||
show_object(OBJ_JUMPSHIP)
|
||||
enable_object(OBJ_JUMPSHIP)
|
||||
set_object_flag3(OBJ_JUMPSHIP, OBJFLAG3_00000010)
|
||||
set_object_flag2(OBJ_JUMPSHIP, OBJFLAG2_04000000)
|
||||
object_do_animation(0x015e, OBJ_JUMPSHIP, 0x04, 0xffff)
|
||||
@@ -2616,7 +2616,7 @@ u8 func0412_outro[] = {
|
||||
endloop(0x21)
|
||||
|
||||
label(0x5d)
|
||||
hide_object(OBJ_JUMPSHIP)
|
||||
disable_object(OBJ_JUMPSHIP)
|
||||
end_level
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
|
||||
@@ -531,17 +531,17 @@ u8 func0402_outro_from_menu[] = {
|
||||
#if VERSION >= VERSION_NTSC_FINAL
|
||||
set_ailist(CHR_TRENT, GAILIST_IDLE)
|
||||
#endif
|
||||
hide_chr(CHR_ROBOT1)
|
||||
hide_chr(CHR_ROBOT2)
|
||||
hide_chr(CHR_ROBOT3)
|
||||
hide_chr(CHR_ROBOT4)
|
||||
disable_chr(CHR_ROBOT1)
|
||||
disable_chr(CHR_ROBOT2)
|
||||
disable_chr(CHR_ROBOT3)
|
||||
disable_chr(CHR_ROBOT4)
|
||||
set_ailist(CHR_SELF, AILIST_OUTRO)
|
||||
endlist
|
||||
};
|
||||
|
||||
u8 func0402_outro[] = {
|
||||
set_stage_flag(STAGEFLAG_OUTRO_STARTED)
|
||||
hide_object(OBJ_HOVERBIKE)
|
||||
disable_object(OBJ_HOVERBIKE)
|
||||
set_ailist(CHR_PRESIDENT, GAILIST_IDLE)
|
||||
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x31)
|
||||
set_target_chr(CHR_BOND)
|
||||
@@ -598,7 +598,7 @@ u8 func0402_outro[] = {
|
||||
set_chr_hiddenflag(CHR_PRESIDENT_OUTRO, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x01de, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_PRESIDENT_OUTRO, 4)
|
||||
|
||||
show_object(0x00)
|
||||
enable_object(0x00)
|
||||
set_object_flag2(OBJ_CRATE, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_CRATE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x01e0, OBJ_CRATE, 0x04, 0xffff)
|
||||
@@ -1926,7 +1926,7 @@ u8 func1013_setup_rtracker[] = {
|
||||
u8 func1016_hide_hoverbike[] = {
|
||||
yield
|
||||
if_savefile_flag_is_set(SAVEFILEFLAG_CRASHSITE_BIKE, /*goto*/ 0x08)
|
||||
hide_object(OBJ_HOVERBIKE)
|
||||
disable_object(OBJ_HOVERBIKE)
|
||||
label(0x08)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
@@ -1934,7 +1934,7 @@ u8 func1016_hide_hoverbike[] = {
|
||||
|
||||
u8 func1014_setup_skedar_shuttle[] = {
|
||||
yield
|
||||
show_object(OBJ_SKEDAR_SHUTTLE)
|
||||
enable_object(OBJ_SKEDAR_SHUTTLE)
|
||||
set_object_flag3(OBJ_SKEDAR_SHUTTLE, OBJFLAG3_00000010)
|
||||
object_set_modelpart_visible(OBJ_SKEDAR_SHUTTLE, MODELPART_SKSHUTTLE_GANGWAY, FALSE)
|
||||
object_do_animation(0x0486, OBJ_SKEDAR_SHUTTLE, 0x01, 0xffff)
|
||||
|
||||
+65
-65
@@ -848,7 +848,7 @@ u8 func0425_outro[] = {
|
||||
set_chr_hiddenflag(CHR_OUTRO_NSA, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x031b, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_OUTRO_NSA, 4)
|
||||
|
||||
show_object(OBJ_PLANE)
|
||||
enable_object(OBJ_PLANE)
|
||||
set_object_flag2(OBJ_PLANE, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_PLANE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x031c, OBJ_PLANE, 0x04, 0xffff)
|
||||
@@ -907,7 +907,7 @@ u8 func0425_outro[] = {
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
#if VERSION < VERSION_PAL_FINAL
|
||||
hide_object(OBJ_PLANE)
|
||||
disable_object(OBJ_PLANE)
|
||||
#endif
|
||||
end_level
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -932,52 +932,52 @@ u8 func1004_guard_activation[] = {
|
||||
set_object_flag2(OBJ_REMOTEMINE, OBJFLAG2_INVISIBLE)
|
||||
yield
|
||||
yield
|
||||
hide_chr(0x13)
|
||||
hide_chr(0x15)
|
||||
hide_chr(0x17)
|
||||
hide_chr(0x19)
|
||||
hide_chr(0x1b)
|
||||
hide_chr(0x1d)
|
||||
hide_chr(0x1f)
|
||||
hide_chr(0x21)
|
||||
hide_chr(0x23)
|
||||
hide_chr(0x25)
|
||||
hide_chr(0x27)
|
||||
hide_chr(0x2a)
|
||||
hide_chr(0x2c)
|
||||
hide_chr(0x2e)
|
||||
hide_chr(0x30)
|
||||
hide_chr(0x32)
|
||||
hide_chr(0x34)
|
||||
hide_chr(0x36)
|
||||
hide_chr(0x42)
|
||||
hide_chr(0x43)
|
||||
hide_chr(0x14)
|
||||
hide_chr(0x16)
|
||||
hide_chr(0x18)
|
||||
hide_chr(0x1a)
|
||||
hide_chr(0x1c)
|
||||
hide_chr(0x1e)
|
||||
hide_chr(0x20)
|
||||
hide_chr(0x22)
|
||||
hide_chr(0x24)
|
||||
hide_chr(0x26)
|
||||
hide_chr(0x28)
|
||||
hide_chr(0x2b)
|
||||
hide_chr(0x2d)
|
||||
hide_chr(0x2f)
|
||||
hide_chr(0x31)
|
||||
hide_chr(0x33)
|
||||
hide_chr(0x35)
|
||||
hide_chr(0x37)
|
||||
disable_chr(0x13)
|
||||
disable_chr(0x15)
|
||||
disable_chr(0x17)
|
||||
disable_chr(0x19)
|
||||
disable_chr(0x1b)
|
||||
disable_chr(0x1d)
|
||||
disable_chr(0x1f)
|
||||
disable_chr(0x21)
|
||||
disable_chr(0x23)
|
||||
disable_chr(0x25)
|
||||
disable_chr(0x27)
|
||||
disable_chr(0x2a)
|
||||
disable_chr(0x2c)
|
||||
disable_chr(0x2e)
|
||||
disable_chr(0x30)
|
||||
disable_chr(0x32)
|
||||
disable_chr(0x34)
|
||||
disable_chr(0x36)
|
||||
disable_chr(0x42)
|
||||
disable_chr(0x43)
|
||||
disable_chr(0x14)
|
||||
disable_chr(0x16)
|
||||
disable_chr(0x18)
|
||||
disable_chr(0x1a)
|
||||
disable_chr(0x1c)
|
||||
disable_chr(0x1e)
|
||||
disable_chr(0x20)
|
||||
disable_chr(0x22)
|
||||
disable_chr(0x24)
|
||||
disable_chr(0x26)
|
||||
disable_chr(0x28)
|
||||
disable_chr(0x2b)
|
||||
disable_chr(0x2d)
|
||||
disable_chr(0x2f)
|
||||
disable_chr(0x31)
|
||||
disable_chr(0x33)
|
||||
disable_chr(0x35)
|
||||
disable_chr(0x37)
|
||||
|
||||
beginloop(0x00)
|
||||
if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02)
|
||||
endloop(0x00)
|
||||
|
||||
label(0x02)
|
||||
hide_object(0x27)
|
||||
hide_object(0x28)
|
||||
disable_object(0x27)
|
||||
disable_object(0x28)
|
||||
unset_object_flag(0x29, OBJFLAG_INVINCIBLE)
|
||||
unset_object_flag2(0x29, OBJFLAG2_INVISIBLE)
|
||||
set_object_flag(0x29, OBJFLAG_00000100)
|
||||
@@ -1035,7 +1035,7 @@ u8 func1004_guard_activation[] = {
|
||||
set_ailist(0x11, AILIST_INIT_POSTTAKEOVER_GUARD)
|
||||
|
||||
#define enable_takeover_guard2(chr, function) \
|
||||
show_chr(chr) \
|
||||
enable_chr(chr) \
|
||||
set_ailist(chr, function) \
|
||||
unset_chr_hiddenflag(chr, CHRHFLAG_ANTINONINTERACTABLE) \
|
||||
unset_chr_chrflag(chr, CHRCFLAG_HIDDEN) \
|
||||
@@ -1057,11 +1057,11 @@ u8 func1004_guard_activation[] = {
|
||||
enable_takeover_guard2(0x34, AILIST_INIT_POSTTAKEOVER_GUARD)
|
||||
enable_takeover_guard2(0x36, AILIST_INIT_POSTTAKEOVER_GUARD)
|
||||
|
||||
show_chr(0x42)
|
||||
enable_chr(0x42)
|
||||
set_ailist(0x42, AILIST_FOYER_SPAWNER)
|
||||
yield
|
||||
|
||||
show_chr(0x43)
|
||||
enable_chr(0x43)
|
||||
set_ailist(0x43, AILIST_FOYER_SPAWNER)
|
||||
yield
|
||||
|
||||
@@ -1087,7 +1087,7 @@ u8 func1004_guard_activation[] = {
|
||||
endloop(0x6d)
|
||||
|
||||
#define enable_bottom_guard(chr) \
|
||||
show_chr(chr) \
|
||||
enable_chr(chr) \
|
||||
set_ailist(chr, AILIST_INIT_POSTTAKEOVER_GUARD) \
|
||||
unset_chr_hiddenflag(chr, CHRHFLAG_ANTINONINTERACTABLE) \
|
||||
unset_chr_chrflag(chr, CHRCFLAG_HIDDEN) \
|
||||
@@ -2874,7 +2874,7 @@ u8 func1017_laser5[] = {
|
||||
|
||||
label(0x04)
|
||||
restart_timer
|
||||
hide_object(0x13)
|
||||
disable_object(0x13)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// Unreachable
|
||||
@@ -2907,10 +2907,10 @@ u8 func0403_unused[] = {
|
||||
u8 func1015_unhide_laser_guards[] = {
|
||||
// These are all invalid chrs. They must have been removed.
|
||||
// They would have appeared when the lasers were overloaded.
|
||||
hide_chr(0x3e)
|
||||
hide_chr(0x3f)
|
||||
hide_chr(0x40)
|
||||
hide_chr(0x41)
|
||||
disable_chr(0x3e)
|
||||
disable_chr(0x3f)
|
||||
disable_chr(0x40)
|
||||
disable_chr(0x41)
|
||||
set_chr_chrflag(0x3e, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(0x3f, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(0x40, CHRCFLAG_HIDDEN)
|
||||
@@ -2927,13 +2927,13 @@ u8 func1015_unhide_laser_guards[] = {
|
||||
unset_chr_chrflag(0x3f, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(0x40, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(0x41, CHRCFLAG_HIDDEN)
|
||||
show_chr(0x3e)
|
||||
enable_chr(0x3e)
|
||||
set_ailist(0x3e, 0x0404)
|
||||
show_chr(0x3f)
|
||||
enable_chr(0x3f)
|
||||
set_ailist(0x3f, GAILIST_ALERTED)
|
||||
show_chr(0x40)
|
||||
enable_chr(0x40)
|
||||
set_ailist(0x40, GAILIST_ALERTED)
|
||||
show_chr(0x41)
|
||||
enable_chr(0x41)
|
||||
set_ailist(0x41, GAILIST_ALERTED)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
@@ -3622,11 +3622,11 @@ u8 func1003_intro[] = {
|
||||
unset_chr_chrflag(0x4c, CHRCFLAG_HIDDEN)
|
||||
set_chr_hiddenflag(0x4c, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x01ec, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, 0x4c, 4)
|
||||
show_object(0x22)
|
||||
enable_object(0x22)
|
||||
set_object_flag2(0x22, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x22, OBJFLAG3_00000010)
|
||||
object_do_animation(0x01ed, 0x22, 0x04, 0xffff)
|
||||
show_object(0x2f)
|
||||
enable_object(0x2f)
|
||||
set_object_flag2(0x2f, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x2f, OBJFLAG3_00000010)
|
||||
object_do_animation(0x01ee, 0x2f, 0x04, 0xffff)
|
||||
@@ -3820,8 +3820,8 @@ u8 func1003_intro[] = {
|
||||
mute_channel(CHANNEL_4)
|
||||
mute_channel(CHANNEL_0)
|
||||
mute_channel(CHANNEL_10)
|
||||
hide_object(0x22)
|
||||
hide_object(0x2f)
|
||||
disable_object(0x22)
|
||||
disable_object(0x2f)
|
||||
label(0x02)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
@@ -4123,7 +4123,7 @@ u8 func141b_setup_lifts_and_doors[] = {
|
||||
|
||||
// Agent
|
||||
label(0x31)
|
||||
hide_object(0x09)
|
||||
disable_object(0x09)
|
||||
label(0x02)
|
||||
set_object_flag(OBJ_DIAGONAL_LIFT, OBJFLAG_DEACTIVATED)
|
||||
set_object_flag(OBJ_VERTICAL_LIFT, OBJFLAG_DEACTIVATED)
|
||||
@@ -4319,27 +4319,27 @@ u8 func1032_unhide_guards_near_plane[] = {
|
||||
endloop(0x00)
|
||||
|
||||
label(0x31)
|
||||
show_chr(0x1b)
|
||||
enable_chr(0x1b)
|
||||
set_ailist(0x1b, 0x0422)
|
||||
unset_chr_hiddenflag(0x1b, CHRHFLAG_ANTINONINTERACTABLE)
|
||||
unset_chr_chrflag(0x1b, CHRCFLAG_HIDDEN)
|
||||
yield
|
||||
show_chr(0x19)
|
||||
enable_chr(0x19)
|
||||
set_ailist(0x19, AILIST_INIT_POSTTAKEOVER_GUARD)
|
||||
unset_chr_hiddenflag(0x19, CHRHFLAG_ANTINONINTERACTABLE)
|
||||
unset_chr_chrflag(0x19, CHRCFLAG_HIDDEN)
|
||||
yield
|
||||
show_chr(0x1d)
|
||||
enable_chr(0x1d)
|
||||
set_ailist(0x1d, AILIST_INIT_POSTTAKEOVER_GUARD)
|
||||
unset_chr_hiddenflag(0x1d, CHRHFLAG_ANTINONINTERACTABLE)
|
||||
unset_chr_chrflag(0x1d, CHRCFLAG_HIDDEN)
|
||||
yield
|
||||
show_chr(0x1e)
|
||||
enable_chr(0x1e)
|
||||
set_ailist(0x1e, AILIST_INIT_POSTTAKEOVER_GUARD)
|
||||
unset_chr_hiddenflag(0x1e, CHRHFLAG_ANTINONINTERACTABLE)
|
||||
unset_chr_chrflag(0x1e, CHRCFLAG_HIDDEN)
|
||||
yield
|
||||
show_chr(0x20)
|
||||
enable_chr(0x20)
|
||||
set_ailist(0x20, AILIST_INIT_POSTTAKEOVER_GUARD)
|
||||
unset_chr_hiddenflag(0x20, CHRHFLAG_ANTINONINTERACTABLE)
|
||||
unset_chr_chrflag(0x20, CHRCFLAG_HIDDEN)
|
||||
|
||||
+56
-56
@@ -816,7 +816,7 @@ u8 func1002_intro[] = {
|
||||
set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x02d0, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 2)
|
||||
unset_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_UNPLAYABLE)
|
||||
hide_chr(CHR_INTRO_GUARD)
|
||||
disable_chr(CHR_INTRO_GUARD)
|
||||
enter_firstperson
|
||||
yield
|
||||
set_ailist(CHR_ELVIS, AILIST_ELVIS_AT_START)
|
||||
@@ -850,22 +850,22 @@ u8 func0c01_outro[] = {
|
||||
set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x02e4, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 4)
|
||||
|
||||
show_object(OBJ_OUTRO_SUBMARINE)
|
||||
enable_object(OBJ_OUTRO_SUBMARINE)
|
||||
set_object_flag2(OBJ_OUTRO_SUBMARINE, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_OUTRO_SUBMARINE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02e5, OBJ_OUTRO_SUBMARINE, 0x04, 0xffff)
|
||||
|
||||
show_object(OBJ_OUTRO_GRATE)
|
||||
enable_object(OBJ_OUTRO_GRATE)
|
||||
set_object_flag2(OBJ_OUTRO_GRATE, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_OUTRO_GRATE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02e6, OBJ_OUTRO_GRATE, 0x04, 0xffff)
|
||||
|
||||
show_object(OBJ_OUTRO_CRATE1)
|
||||
enable_object(OBJ_OUTRO_CRATE1)
|
||||
set_object_flag2(OBJ_OUTRO_CRATE1, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_OUTRO_CRATE1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02e7, OBJ_OUTRO_CRATE1, 0x04, 0xffff)
|
||||
|
||||
show_object(OBJ_OUTRO_CRATE2)
|
||||
enable_object(OBJ_OUTRO_CRATE2)
|
||||
set_object_flag2(OBJ_OUTRO_CRATE2, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_OUTRO_CRATE2, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02e8, OBJ_OUTRO_CRATE2, 0x04, 0xffff)
|
||||
@@ -1093,7 +1093,7 @@ u8 func1009_open_reactor_hatch[] = {
|
||||
endloop(0x00)
|
||||
|
||||
label(0x07)
|
||||
hide_object(OBJ_REACTOR_HATCH)
|
||||
disable_object(OBJ_REACTOR_HATCH)
|
||||
set_object_flag2(OBJ_REACTOR_HATCH, OBJFLAG2_INVISIBLE)
|
||||
show_hudmsg(CHR_P1P2, L_DAM_017) // "Reactor shutdown control hatch opened."
|
||||
set_stage_flag(STAGEFLAG_REACTOR_HATCH_OPEN)
|
||||
@@ -1683,14 +1683,14 @@ u8 func1010_alarm_responders[] = {
|
||||
set_chr_hiddenflag(0x5c, CHRHFLAG_CLOAKED)
|
||||
set_chr_hiddenflag(0x5d, CHRHFLAG_CLOAKED)
|
||||
set_chr_hiddenflag(0x5e, CHRHFLAG_CLOAKED)
|
||||
hide_chr(0x57)
|
||||
hide_chr(0x58)
|
||||
hide_chr(0x59)
|
||||
hide_chr(0x5a)
|
||||
hide_chr(0x5b)
|
||||
hide_chr(0x5c)
|
||||
hide_chr(0x5d)
|
||||
hide_chr(0x5e)
|
||||
disable_chr(0x57)
|
||||
disable_chr(0x58)
|
||||
disable_chr(0x59)
|
||||
disable_chr(0x5a)
|
||||
disable_chr(0x5b)
|
||||
disable_chr(0x5c)
|
||||
disable_chr(0x5d)
|
||||
disable_chr(0x5e)
|
||||
set_chr_hiddenflag(0x04, CHRHFLAG_CLOAKED)
|
||||
set_chr_hiddenflag(0x25, CHRHFLAG_CLOAKED)
|
||||
set_chr_hiddenflag(0x06, CHRHFLAG_CLOAKED)
|
||||
@@ -1708,37 +1708,37 @@ u8 func1010_alarm_responders[] = {
|
||||
set_chr_hiddenflag(0x1e, CHRHFLAG_CLOAKED)
|
||||
set_chr_hiddenflag(0x20, CHRHFLAG_CLOAKED)
|
||||
set_chr_hiddenflag(0x22, CHRHFLAG_CLOAKED)
|
||||
hide_chr(0x04)
|
||||
hide_chr(0x25)
|
||||
hide_chr(0x06)
|
||||
hide_chr(0x08)
|
||||
hide_chr(0x0a)
|
||||
hide_chr(0x0c)
|
||||
hide_chr(0x0e)
|
||||
hide_chr(0x10)
|
||||
hide_chr(0x12)
|
||||
hide_chr(0x14)
|
||||
hide_chr(0x16)
|
||||
hide_chr(0x18)
|
||||
hide_chr(0x1a)
|
||||
hide_chr(0x1c)
|
||||
hide_chr(0x1e)
|
||||
hide_chr(0x20)
|
||||
hide_chr(0x22)
|
||||
disable_chr(0x04)
|
||||
disable_chr(0x25)
|
||||
disable_chr(0x06)
|
||||
disable_chr(0x08)
|
||||
disable_chr(0x0a)
|
||||
disable_chr(0x0c)
|
||||
disable_chr(0x0e)
|
||||
disable_chr(0x10)
|
||||
disable_chr(0x12)
|
||||
disable_chr(0x14)
|
||||
disable_chr(0x16)
|
||||
disable_chr(0x18)
|
||||
disable_chr(0x1a)
|
||||
disable_chr(0x1c)
|
||||
disable_chr(0x1e)
|
||||
disable_chr(0x20)
|
||||
disable_chr(0x22)
|
||||
|
||||
beginloop(0x00)
|
||||
if_alarm_active(/*goto*/ 0x07)
|
||||
endloop(0x00)
|
||||
|
||||
label(0x07)
|
||||
show_chr(0x57)
|
||||
show_chr(0x58)
|
||||
show_chr(0x59)
|
||||
show_chr(0x5a)
|
||||
show_chr(0x5b)
|
||||
show_chr(0x5c)
|
||||
show_chr(0x5d)
|
||||
show_chr(0x5e)
|
||||
enable_chr(0x57)
|
||||
enable_chr(0x58)
|
||||
enable_chr(0x59)
|
||||
enable_chr(0x5a)
|
||||
enable_chr(0x5b)
|
||||
enable_chr(0x5c)
|
||||
enable_chr(0x5d)
|
||||
enable_chr(0x5e)
|
||||
set_chr_team(0x57, TEAM_ENEMY)
|
||||
set_chr_team(0x58, TEAM_ENEMY)
|
||||
set_chr_team(0x59, TEAM_ENEMY)
|
||||
@@ -1750,23 +1750,23 @@ u8 func1010_alarm_responders[] = {
|
||||
rebuild_teams
|
||||
rebuild_squadrons
|
||||
yield
|
||||
show_chr(0x04)
|
||||
show_chr(0x25)
|
||||
show_chr(0x06)
|
||||
show_chr(0x08)
|
||||
show_chr(0x0a)
|
||||
show_chr(0x0c)
|
||||
show_chr(0x0e)
|
||||
show_chr(0x10)
|
||||
show_chr(0x12)
|
||||
show_chr(0x14)
|
||||
show_chr(0x16)
|
||||
show_chr(0x18)
|
||||
show_chr(0x1a)
|
||||
show_chr(0x1c)
|
||||
show_chr(0x1e)
|
||||
show_chr(0x20)
|
||||
show_chr(0x22)
|
||||
enable_chr(0x04)
|
||||
enable_chr(0x25)
|
||||
enable_chr(0x06)
|
||||
enable_chr(0x08)
|
||||
enable_chr(0x0a)
|
||||
enable_chr(0x0c)
|
||||
enable_chr(0x0e)
|
||||
enable_chr(0x10)
|
||||
enable_chr(0x12)
|
||||
enable_chr(0x14)
|
||||
enable_chr(0x16)
|
||||
enable_chr(0x18)
|
||||
enable_chr(0x1a)
|
||||
enable_chr(0x1c)
|
||||
enable_chr(0x1e)
|
||||
enable_chr(0x20)
|
||||
enable_chr(0x22)
|
||||
set_chr_team(0x04, TEAM_ENEMY)
|
||||
set_chr_team(0x25, TEAM_ENEMY)
|
||||
set_chr_team(0x06, TEAM_ENEMY)
|
||||
|
||||
@@ -1182,7 +1182,7 @@ u8 func100a_give_keycards[] = {
|
||||
label(0x2c)
|
||||
set_object_flag2(OBJ_CROSSBOW, OBJFLAG2_INVISIBLE)
|
||||
set_object_flag(OBJ_CROSSBOW, OBJFLAG_UNCOLLECTABLE)
|
||||
hide_object(OBJ_CROSSBOW)
|
||||
disable_object(OBJ_CROSSBOW)
|
||||
|
||||
beginloop(0x08)
|
||||
dprint 'C','H','E','C','K',' ','D','E','A','D',0,
|
||||
@@ -2083,8 +2083,8 @@ u8 func040e_meeting_cutscene[] = {
|
||||
};
|
||||
|
||||
u8 func040f_outro_from_menu[] = {
|
||||
hide_object(OBJ_MINE1)
|
||||
hide_object(OBJ_MINE2)
|
||||
disable_object(OBJ_MINE1)
|
||||
disable_object(OBJ_MINE2)
|
||||
set_ailist(CHR_SELF, AILIST_OUTRO)
|
||||
endlist
|
||||
};
|
||||
@@ -2567,13 +2567,13 @@ u8 func101d_init_mines[] = {
|
||||
label(0x06)
|
||||
if_savefile_flag_is_unset(SAVEFILEFLAG_G5_MINE, /*goto*/ 0x06)
|
||||
|
||||
hide_object(OBJ_MINE1)
|
||||
disable_object(OBJ_MINE1)
|
||||
dprint 'E','P','R','O','M','F','L','A','G',' ','N','O','T','S','E','T',0,
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
label(0x06)
|
||||
dprint 'E','P','R','O','M','F','L','A','G',' ','S','E','T',0,
|
||||
hide_object(OBJ_MINE2)
|
||||
disable_object(OBJ_MINE2)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
@@ -2853,7 +2853,7 @@ u8 func1023_hide_nbomb_crate[] = {
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
label(0x06)
|
||||
hide_object(OBJ_NBOMB_CRATE)
|
||||
disable_object(OBJ_NBOMB_CRATE)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
|
||||
+179
-179
@@ -804,11 +804,11 @@ u8 func1002_devicetraining_camspy[] = {
|
||||
endloop(0x0f)
|
||||
|
||||
label(0x81)
|
||||
hide_object(0x0e)
|
||||
disable_object(0x0e)
|
||||
lock_door(0x31, 0x40)
|
||||
lock_door(0x8a, 0x40)
|
||||
lock_door(0x89, 0x40)
|
||||
show_object(OBJ_CAMSPY)
|
||||
enable_object(OBJ_CAMSPY)
|
||||
move_object_to_pad(OBJ_CAMSPY, 0x011d)
|
||||
unset_object_flag(OBJ_CAMSPY, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(OBJ_CAMSPY, OBJFLAG2_INVISIBLE)
|
||||
@@ -817,7 +817,7 @@ u8 func1002_devicetraining_camspy[] = {
|
||||
close_door(0x8a)
|
||||
close_door(0x89)
|
||||
yield
|
||||
show_object(0x0e)
|
||||
enable_object(0x0e)
|
||||
|
||||
label(0x8c)
|
||||
remove_hudmsgs
|
||||
@@ -895,7 +895,7 @@ u8 func1002_devicetraining_camspy[] = {
|
||||
unlock_door(0x8a, 0x40)
|
||||
unlock_door(0x89, 0x40)
|
||||
remove_hudmsgs
|
||||
hide_object(OBJ_CAMSPY)
|
||||
disable_object(OBJ_CAMSPY)
|
||||
goto_first(0x0f)
|
||||
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -922,7 +922,7 @@ u8 func1003_devicetraining_nightvision[] = {
|
||||
lock_door(0x31, 0x40)
|
||||
lock_door(0x8a, 0x40)
|
||||
lock_door(0x89, 0x40)
|
||||
show_object(0x27)
|
||||
enable_object(0x27)
|
||||
move_object_to_pad(0x27, 0x011d)
|
||||
unset_object_flag(0x27, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x27, OBJFLAG2_INVISIBLE)
|
||||
@@ -1030,7 +1030,7 @@ u8 func1003_devicetraining_nightvision[] = {
|
||||
unlock_door(0x89, 0x40)
|
||||
set_stage_flag(STAGEFLAG_CONSIDER_WARP)
|
||||
remove_hudmsgs
|
||||
hide_object(0x27)
|
||||
disable_object(0x27)
|
||||
|
||||
beginloop(0x59)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_NIGHTVISION, FALSE, /*goto*/ 0x2f)
|
||||
@@ -1056,7 +1056,7 @@ u8 func1004_devicetraining_doordecoder[] = {
|
||||
lock_door(0x31, 0x40)
|
||||
lock_door(0x8a, 0x40)
|
||||
lock_door(0x89, 0x40)
|
||||
show_object(0x28)
|
||||
enable_object(0x28)
|
||||
move_object_to_pad(0x28, 0x011d)
|
||||
unset_object_flag(0x28, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x28, OBJFLAG2_INVISIBLE)
|
||||
@@ -1201,7 +1201,7 @@ u8 func1004_devicetraining_doordecoder[] = {
|
||||
unlock_door(0x89, 0x40)
|
||||
set_stage_flag(STAGEFLAG_CONSIDER_WARP)
|
||||
remove_hudmsgs
|
||||
hide_object(0x28)
|
||||
disable_object(0x28)
|
||||
goto_first(0x0f)
|
||||
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -1219,7 +1219,7 @@ u8 func1005_devicetraining_xray[] = {
|
||||
lock_door(0x8a, 0x40)
|
||||
lock_door(0x89, 0x40)
|
||||
dprint 't','r','a','i','n','i','n','g',0,
|
||||
show_object(0x29)
|
||||
enable_object(0x29)
|
||||
move_object_to_pad(0x29, 0x011d)
|
||||
unset_object_flag(0x29, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x29, OBJFLAG2_INVISIBLE)
|
||||
@@ -1352,11 +1352,11 @@ u8 func1005_devicetraining_xray[] = {
|
||||
endloop(0x8a)
|
||||
|
||||
label(0x8b)
|
||||
hide_object(0x3a)
|
||||
disable_object(0x3a)
|
||||
goto_next(0x06)
|
||||
|
||||
label(0x07)
|
||||
hide_object(0x3b)
|
||||
disable_object(0x3b)
|
||||
goto_next(0x06)
|
||||
|
||||
label(0x06)
|
||||
@@ -1410,7 +1410,7 @@ u8 func1005_devicetraining_xray[] = {
|
||||
unlock_door(0x89, 0x40)
|
||||
set_stage_flag(STAGEFLAG_CONSIDER_WARP)
|
||||
remove_hudmsgs
|
||||
hide_object(0x29)
|
||||
disable_object(0x29)
|
||||
goto_first(0x08)
|
||||
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -1431,7 +1431,7 @@ u8 func1006_devicetraining_disguise[] = {
|
||||
lock_door(0x8a, 0x40)
|
||||
lock_door(0x89, 0x40)
|
||||
dprint 't','r','a','i','n','i','n','g',0,
|
||||
show_object(0x2a)
|
||||
enable_object(0x2a)
|
||||
move_object_to_pad(0x2a, 0x011d)
|
||||
unset_object_flag(0x2a, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x2a, OBJFLAG2_INVISIBLE)
|
||||
@@ -1547,7 +1547,7 @@ u8 func1006_devicetraining_disguise[] = {
|
||||
unlock_door(0x89, 0x40)
|
||||
set_stage_flag(STAGEFLAG_CONSIDER_WARP)
|
||||
remove_hudmsgs
|
||||
hide_object(0x2a)
|
||||
disable_object(0x2a)
|
||||
|
||||
beginloop(0x6d)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_DISGUISE, FALSE, /*goto*/ 0x2f)
|
||||
@@ -1574,7 +1574,7 @@ u8 func1007_devicetrainign_ir[] = {
|
||||
lock_door(0x8a, 0x40)
|
||||
lock_door(0x89, 0x40)
|
||||
dprint 't','r','a','i','n','i','n','g',0,
|
||||
show_object(0x2b)
|
||||
enable_object(0x2b)
|
||||
move_object_to_pad(0x2b, 0x011d)
|
||||
unset_object_flag(0x2b, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x2b, OBJFLAG2_INVISIBLE)
|
||||
@@ -1694,7 +1694,7 @@ u8 func1007_devicetrainign_ir[] = {
|
||||
unlock_door(0x89, 0x40)
|
||||
set_stage_flag(STAGEFLAG_CONSIDER_WARP)
|
||||
remove_hudmsgs
|
||||
hide_object(0x2b)
|
||||
disable_object(0x2b)
|
||||
goto_first(0x08)
|
||||
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -1712,7 +1712,7 @@ u8 func1008_devicetraining_rtracker[] = {
|
||||
lock_door(0x8a, 0x40)
|
||||
lock_door(0x89, 0x40)
|
||||
dprint 't','r','a','i','n','i','n','g',0,
|
||||
show_object(0x2c)
|
||||
enable_object(0x2c)
|
||||
move_object_to_pad(0x2c, 0x011d)
|
||||
unset_object_flag(0x2c, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x2c, OBJFLAG2_INVISIBLE)
|
||||
@@ -1769,7 +1769,7 @@ u8 func1008_devicetraining_rtracker[] = {
|
||||
label(0x2f)
|
||||
unset_object_flag(0x36, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x36, OBJFLAG2_INVISIBLE)
|
||||
show_object(0x36)
|
||||
enable_object(0x36)
|
||||
move_object_to_pad(0x36, 0x011e)
|
||||
set_object_flag3(0x36, OBJFLAG3_RTRACKED_YELLOW)
|
||||
remove_hudmsgs
|
||||
@@ -1819,8 +1819,8 @@ u8 func1008_devicetraining_rtracker[] = {
|
||||
unlock_door(0x89, 0x40)
|
||||
set_stage_flag(STAGEFLAG_CONSIDER_WARP)
|
||||
remove_hudmsgs
|
||||
hide_object(0x2c)
|
||||
hide_object(0x36)
|
||||
disable_object(0x2c)
|
||||
disable_object(0x36)
|
||||
goto_first(0x08)
|
||||
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -1841,7 +1841,7 @@ u8 func1009_devicetraining_cloak[] = {
|
||||
lock_door(0x89, 0x40)
|
||||
dprint 't','r','a','i','n','i','n','g',0,
|
||||
restart_timer
|
||||
show_object(0x2d)
|
||||
enable_object(0x2d)
|
||||
move_object_to_pad(0x2d, 0x011d)
|
||||
unset_stage_flag(STAGEFLAG_CLOAK_FAILED)
|
||||
unset_stage_flag(STAGEFLAG_CLOAK_COMPLETE)
|
||||
@@ -1968,7 +1968,7 @@ u8 func1009_devicetraining_cloak[] = {
|
||||
unlock_door(0x89, 0x40)
|
||||
set_stage_flag(STAGEFLAG_CONSIDER_WARP)
|
||||
remove_hudmsgs
|
||||
hide_object(0x2d)
|
||||
disable_object(0x2d)
|
||||
|
||||
beginloop(0x5c)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x2f)
|
||||
@@ -1992,7 +1992,7 @@ u8 func100a_devicetraining_ecmmine[] = {
|
||||
lock_door(0x31, 0x40)
|
||||
lock_door(0x8a, 0x40)
|
||||
lock_door(0x89, 0x40)
|
||||
show_object(0x2e)
|
||||
enable_object(0x2e)
|
||||
move_object_to_pad(0x2e, 0x011d)
|
||||
unset_object_flag(0x2e, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x2e, OBJFLAG2_INVISIBLE)
|
||||
@@ -2119,7 +2119,7 @@ u8 func100a_devicetraining_ecmmine[] = {
|
||||
unlock_door(0x89, 0x40)
|
||||
set_stage_flag(STAGEFLAG_CONSIDER_WARP)
|
||||
remove_hudmsgs
|
||||
hide_object(0x2e)
|
||||
disable_object(0x2e)
|
||||
goto_first(0x0f)
|
||||
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -2139,7 +2139,7 @@ u8 func100b_devicetraining_uplink[] = {
|
||||
unset_stage_flag(STAGEFLAG_DEVICE_ABORTING)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE)
|
||||
show_object(0x2f)
|
||||
enable_object(0x2f)
|
||||
move_object_to_pad(0x2f, 0x0131)
|
||||
unset_object_flag(0x2f, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(0x2f, OBJFLAG2_INVISIBLE)
|
||||
@@ -2331,7 +2331,7 @@ u8 func100b_devicetraining_uplink[] = {
|
||||
mute_channel(CHANNEL_6)
|
||||
mute_channel(CHANNEL_7)
|
||||
dprint 'a','b','o','r','t','e','d',0,
|
||||
hide_object(0x2f)
|
||||
disable_object(0x2f)
|
||||
goto_first(0x08)
|
||||
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -2760,8 +2760,8 @@ u8 func100e_training_unlockables[] = {
|
||||
endloop(0x0f)
|
||||
|
||||
label(0x2f)
|
||||
hide_object(0x3a)
|
||||
hide_object(0x3b)
|
||||
disable_object(0x3a)
|
||||
disable_object(0x3b)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
@@ -3480,14 +3480,14 @@ u8 func1018_lightswitch[] = {
|
||||
|
||||
u8 func101c_holo1_main[] = {
|
||||
label(0x80)
|
||||
hide_object(0x48)
|
||||
hide_object(0x49)
|
||||
hide_object(0x4a)
|
||||
hide_object(0x4b)
|
||||
hide_object(0x4c)
|
||||
hide_object(0x4d)
|
||||
hide_object(0x4e)
|
||||
hide_object(0x4f)
|
||||
disable_object(0x48)
|
||||
disable_object(0x49)
|
||||
disable_object(0x4a)
|
||||
disable_object(0x4b)
|
||||
disable_object(0x4c)
|
||||
disable_object(0x4d)
|
||||
disable_object(0x4e)
|
||||
disable_object(0x4f)
|
||||
|
||||
beginloop(0x08)
|
||||
if_stage_flag_eq(STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x81)
|
||||
@@ -3513,15 +3513,15 @@ u8 func101c_holo1_main[] = {
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE)
|
||||
unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE)
|
||||
hide_object(0x45)
|
||||
show_object(0x48)
|
||||
show_object(0x49)
|
||||
show_object(0x4a)
|
||||
show_object(0x4b)
|
||||
show_object(0x4c)
|
||||
show_object(0x4d)
|
||||
show_object(0x4e)
|
||||
show_object(0x4f)
|
||||
disable_object(0x45)
|
||||
enable_object(0x48)
|
||||
enable_object(0x49)
|
||||
enable_object(0x4a)
|
||||
enable_object(0x4b)
|
||||
enable_object(0x4c)
|
||||
enable_object(0x4d)
|
||||
enable_object(0x4e)
|
||||
enable_object(0x4f)
|
||||
unset_object_flag2(0x48, OBJFLAG2_00000001)
|
||||
unset_object_flag2(0x49, OBJFLAG2_00000001)
|
||||
unset_object_flag2(0x4a, OBJFLAG2_00000001)
|
||||
@@ -3530,7 +3530,7 @@ u8 func101c_holo1_main[] = {
|
||||
unset_object_flag2(0x4d, OBJFLAG2_00000001)
|
||||
unset_object_flag2(0x4e, OBJFLAG2_00000001)
|
||||
unset_object_flag2(0x4f, OBJFLAG2_00000001)
|
||||
hide_chr(0x04)
|
||||
disable_chr(0x04)
|
||||
dprint 't','r','a','i','n','i','n','g',0,
|
||||
label(0x91)
|
||||
if_object_flag2(0x4c, OBJFLAG2_00000001, /*goto*/ 0x2f)
|
||||
@@ -3596,17 +3596,17 @@ u8 func101c_holo1_main[] = {
|
||||
mute_channel(CHANNEL_5)
|
||||
mute_channel(CHANNEL_6)
|
||||
mute_channel(CHANNEL_7)
|
||||
show_chr(0x04)
|
||||
enable_chr(0x04)
|
||||
dprint 'a','b','o','r','t','e','d',0,
|
||||
hide_object(0x48)
|
||||
hide_object(0x49)
|
||||
hide_object(0x4a)
|
||||
hide_object(0x4b)
|
||||
hide_object(0x4c)
|
||||
hide_object(0x4d)
|
||||
hide_object(0x4e)
|
||||
hide_object(0x4f)
|
||||
show_object(0x45)
|
||||
disable_object(0x48)
|
||||
disable_object(0x49)
|
||||
disable_object(0x4a)
|
||||
disable_object(0x4b)
|
||||
disable_object(0x4c)
|
||||
disable_object(0x4d)
|
||||
disable_object(0x4e)
|
||||
disable_object(0x4f)
|
||||
enable_object(0x45)
|
||||
remove_hudmsgs
|
||||
goto_first(0x08)
|
||||
|
||||
@@ -3854,10 +3854,10 @@ u8 func0430_holo1_check_done[] = {
|
||||
|
||||
u8 func1022_holo2_main[] = {
|
||||
label(0x80)
|
||||
hide_object(0x54)
|
||||
hide_object(0x55)
|
||||
hide_object(0x56)
|
||||
hide_object(0x57)
|
||||
disable_object(0x54)
|
||||
disable_object(0x55)
|
||||
disable_object(0x56)
|
||||
disable_object(0x57)
|
||||
|
||||
beginloop(0x08)
|
||||
if_stage_flag_eq(STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x81)
|
||||
@@ -3891,12 +3891,12 @@ u8 func1022_holo2_main[] = {
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE)
|
||||
unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE)
|
||||
hide_object(0x45)
|
||||
show_object(0x54)
|
||||
show_object(0x55)
|
||||
show_object(0x56)
|
||||
show_object(0x57)
|
||||
hide_chr(0x04)
|
||||
disable_object(0x45)
|
||||
enable_object(0x54)
|
||||
enable_object(0x55)
|
||||
enable_object(0x56)
|
||||
enable_object(0x57)
|
||||
disable_chr(0x04)
|
||||
dprint 't','r','a','i','n','i','n','g',0,
|
||||
label(0x2f)
|
||||
label(0x91)
|
||||
@@ -3941,13 +3941,13 @@ u8 func1022_holo2_main[] = {
|
||||
mute_channel(CHANNEL_5)
|
||||
mute_channel(CHANNEL_6)
|
||||
mute_channel(CHANNEL_7)
|
||||
show_chr(0x04)
|
||||
enable_chr(0x04)
|
||||
dprint 'a','b','o','r','t','e','d',0,
|
||||
hide_object(0x54)
|
||||
hide_object(0x55)
|
||||
hide_object(0x56)
|
||||
hide_object(0x57)
|
||||
show_object(0x45)
|
||||
disable_object(0x54)
|
||||
disable_object(0x55)
|
||||
disable_object(0x56)
|
||||
disable_object(0x57)
|
||||
enable_object(0x45)
|
||||
restart_timer
|
||||
|
||||
beginloop(0x09)
|
||||
@@ -4090,35 +4090,35 @@ u8 func042f_holo2_part2[] = {
|
||||
|
||||
u8 func1027_holo3_main[] = {
|
||||
label(0x80)
|
||||
hide_object(0x58)
|
||||
hide_object(0x59)
|
||||
hide_object(0x5a)
|
||||
hide_object(0x5b)
|
||||
hide_object(0x5c)
|
||||
hide_object(0x5d)
|
||||
hide_object(0x5e)
|
||||
hide_object(0x5f)
|
||||
hide_object(0x60)
|
||||
hide_object(0x61)
|
||||
hide_object(0x62)
|
||||
hide_object(0x63)
|
||||
hide_object(0x64)
|
||||
hide_object(0x73)
|
||||
hide_object(0x74)
|
||||
hide_object(0x65)
|
||||
hide_object(0x66)
|
||||
hide_object(0x67)
|
||||
hide_object(0x68)
|
||||
hide_object(0x69)
|
||||
hide_object(0x6a)
|
||||
hide_object(0x6b)
|
||||
hide_object(0x6c)
|
||||
hide_object(0x6d)
|
||||
hide_object(0x6e)
|
||||
hide_object(0x6f)
|
||||
hide_object(0x70)
|
||||
hide_object(0x71)
|
||||
hide_object(0x72)
|
||||
disable_object(0x58)
|
||||
disable_object(0x59)
|
||||
disable_object(0x5a)
|
||||
disable_object(0x5b)
|
||||
disable_object(0x5c)
|
||||
disable_object(0x5d)
|
||||
disable_object(0x5e)
|
||||
disable_object(0x5f)
|
||||
disable_object(0x60)
|
||||
disable_object(0x61)
|
||||
disable_object(0x62)
|
||||
disable_object(0x63)
|
||||
disable_object(0x64)
|
||||
disable_object(0x73)
|
||||
disable_object(0x74)
|
||||
disable_object(0x65)
|
||||
disable_object(0x66)
|
||||
disable_object(0x67)
|
||||
disable_object(0x68)
|
||||
disable_object(0x69)
|
||||
disable_object(0x6a)
|
||||
disable_object(0x6b)
|
||||
disable_object(0x6c)
|
||||
disable_object(0x6d)
|
||||
disable_object(0x6e)
|
||||
disable_object(0x6f)
|
||||
disable_object(0x70)
|
||||
disable_object(0x71)
|
||||
disable_object(0x72)
|
||||
|
||||
beginloop(0x08)
|
||||
if_stage_flag_eq(STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x81)
|
||||
@@ -4148,37 +4148,37 @@ u8 func1027_holo3_main[] = {
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE)
|
||||
unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE)
|
||||
hide_object(0x45)
|
||||
show_object(0x58)
|
||||
show_object(0x59)
|
||||
show_object(0x5a)
|
||||
show_object(0x5b)
|
||||
show_object(0x5c)
|
||||
show_object(0x5d)
|
||||
show_object(0x5e)
|
||||
show_object(0x5f)
|
||||
show_object(0x60)
|
||||
show_object(0x61)
|
||||
show_object(0x62)
|
||||
show_object(0x63)
|
||||
show_object(0x64)
|
||||
show_object(0x73)
|
||||
show_object(0x74)
|
||||
show_object(0x65)
|
||||
show_object(0x66)
|
||||
show_object(0x67)
|
||||
show_object(0x68)
|
||||
show_object(0x69)
|
||||
show_object(0x6a)
|
||||
show_object(0x6b)
|
||||
show_object(0x6c)
|
||||
show_object(0x6d)
|
||||
show_object(0x6e)
|
||||
show_object(0x6f)
|
||||
show_object(0x70)
|
||||
show_object(0x71)
|
||||
show_object(0x72)
|
||||
hide_chr(0x04)
|
||||
disable_object(0x45)
|
||||
enable_object(0x58)
|
||||
enable_object(0x59)
|
||||
enable_object(0x5a)
|
||||
enable_object(0x5b)
|
||||
enable_object(0x5c)
|
||||
enable_object(0x5d)
|
||||
enable_object(0x5e)
|
||||
enable_object(0x5f)
|
||||
enable_object(0x60)
|
||||
enable_object(0x61)
|
||||
enable_object(0x62)
|
||||
enable_object(0x63)
|
||||
enable_object(0x64)
|
||||
enable_object(0x73)
|
||||
enable_object(0x74)
|
||||
enable_object(0x65)
|
||||
enable_object(0x66)
|
||||
enable_object(0x67)
|
||||
enable_object(0x68)
|
||||
enable_object(0x69)
|
||||
enable_object(0x6a)
|
||||
enable_object(0x6b)
|
||||
enable_object(0x6c)
|
||||
enable_object(0x6d)
|
||||
enable_object(0x6e)
|
||||
enable_object(0x6f)
|
||||
enable_object(0x70)
|
||||
enable_object(0x71)
|
||||
enable_object(0x72)
|
||||
disable_chr(0x04)
|
||||
open_door(0x67)
|
||||
open_door(0x68)
|
||||
open_door(0x69)
|
||||
@@ -4249,38 +4249,38 @@ u8 func1027_holo3_main[] = {
|
||||
mute_channel(CHANNEL_5)
|
||||
mute_channel(CHANNEL_6)
|
||||
mute_channel(CHANNEL_7)
|
||||
show_chr(0x04)
|
||||
enable_chr(0x04)
|
||||
dprint 'a','b','o','r','t','e','d',0,
|
||||
hide_object(0x58)
|
||||
hide_object(0x59)
|
||||
hide_object(0x5a)
|
||||
hide_object(0x5b)
|
||||
hide_object(0x5c)
|
||||
hide_object(0x5d)
|
||||
hide_object(0x5e)
|
||||
hide_object(0x5f)
|
||||
hide_object(0x60)
|
||||
hide_object(0x61)
|
||||
hide_object(0x62)
|
||||
hide_object(0x63)
|
||||
hide_object(0x64)
|
||||
hide_object(0x73)
|
||||
hide_object(0x74)
|
||||
hide_object(0x65)
|
||||
hide_object(0x66)
|
||||
hide_object(0x67)
|
||||
hide_object(0x68)
|
||||
hide_object(0x69)
|
||||
hide_object(0x6a)
|
||||
hide_object(0x6b)
|
||||
hide_object(0x6c)
|
||||
hide_object(0x6d)
|
||||
hide_object(0x6e)
|
||||
hide_object(0x6f)
|
||||
hide_object(0x70)
|
||||
hide_object(0x71)
|
||||
hide_object(0x72)
|
||||
show_object(0x45)
|
||||
disable_object(0x58)
|
||||
disable_object(0x59)
|
||||
disable_object(0x5a)
|
||||
disable_object(0x5b)
|
||||
disable_object(0x5c)
|
||||
disable_object(0x5d)
|
||||
disable_object(0x5e)
|
||||
disable_object(0x5f)
|
||||
disable_object(0x60)
|
||||
disable_object(0x61)
|
||||
disable_object(0x62)
|
||||
disable_object(0x63)
|
||||
disable_object(0x64)
|
||||
disable_object(0x73)
|
||||
disable_object(0x74)
|
||||
disable_object(0x65)
|
||||
disable_object(0x66)
|
||||
disable_object(0x67)
|
||||
disable_object(0x68)
|
||||
disable_object(0x69)
|
||||
disable_object(0x6a)
|
||||
disable_object(0x6b)
|
||||
disable_object(0x6c)
|
||||
disable_object(0x6d)
|
||||
disable_object(0x6e)
|
||||
disable_object(0x6f)
|
||||
disable_object(0x70)
|
||||
disable_object(0x71)
|
||||
disable_object(0x72)
|
||||
enable_object(0x45)
|
||||
restart_timer
|
||||
|
||||
beginloop(0x09)
|
||||
@@ -4426,8 +4426,8 @@ u8 func1028_holo4_main[] = {
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE)
|
||||
unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE)
|
||||
hide_object(0x45)
|
||||
hide_chr(0x04)
|
||||
disable_object(0x45)
|
||||
disable_chr(0x04)
|
||||
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, 0x0274, AILIST_HOLO4_GUARD1, SPAWNFLAG_00000010 | SPAWNFLAG_00000200 | SPAWNFLAG_NOBLOOD, /*goto*/ 0x08)
|
||||
label(0x08)
|
||||
dprint 't','r','a','i','n','i','n','g',0,
|
||||
@@ -4488,12 +4488,12 @@ u8 func1028_holo4_main[] = {
|
||||
mute_channel(CHANNEL_5)
|
||||
mute_channel(CHANNEL_6)
|
||||
mute_channel(CHANNEL_7)
|
||||
show_chr(0x04)
|
||||
enable_chr(0x04)
|
||||
remove_chr(0x0d)
|
||||
remove_chr(0x0e)
|
||||
remove_chr(0x0f)
|
||||
dprint 'a','b','o','r','t','e','d',0,
|
||||
show_object(0x45)
|
||||
enable_object(0x45)
|
||||
label(0x06)
|
||||
remove_hudmsgs
|
||||
|
||||
@@ -4667,8 +4667,8 @@ u8 func1029_holo5_main[] = {
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE)
|
||||
unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE)
|
||||
hide_object(0x45)
|
||||
hide_chr(0x04)
|
||||
disable_object(0x45)
|
||||
disable_chr(0x04)
|
||||
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, 0x0126, AILIST_HOLO5_INIT_GUARD1, SPAWNFLAG_00000010 | SPAWNFLAG_00000200 | SPAWNFLAG_NOBLOOD, /*goto*/ 0x06)
|
||||
label(0x06)
|
||||
yield
|
||||
@@ -4732,12 +4732,12 @@ u8 func1029_holo5_main[] = {
|
||||
mute_channel(CHANNEL_5)
|
||||
mute_channel(CHANNEL_6)
|
||||
mute_channel(CHANNEL_7)
|
||||
show_chr(0x04)
|
||||
enable_chr(0x04)
|
||||
remove_chr(0x10)
|
||||
remove_chr(0x11)
|
||||
remove_chr(0x12)
|
||||
dprint 'a','b','o','r','t','e','d',0,
|
||||
show_object(0x45)
|
||||
enable_object(0x45)
|
||||
remove_hudmsgs
|
||||
|
||||
beginloop(0x6d)
|
||||
@@ -5024,8 +5024,8 @@ u8 func102e_holo6_main[] = {
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE)
|
||||
unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE)
|
||||
hide_object(0x45)
|
||||
hide_chr(0x04)
|
||||
disable_object(0x45)
|
||||
disable_chr(0x04)
|
||||
|
||||
beginloop(0x57)
|
||||
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, 0x0127, AILIST_HOLO6_INIT_GUARD1, SPAWNFLAG_00000010 | SPAWNFLAG_00000200 | SPAWNFLAG_NOBLOOD, /*goto*/ 0x59)
|
||||
@@ -5090,13 +5090,13 @@ u8 func102e_holo6_main[] = {
|
||||
mute_channel(CHANNEL_5)
|
||||
mute_channel(CHANNEL_6)
|
||||
mute_channel(CHANNEL_7)
|
||||
show_chr(0x04)
|
||||
enable_chr(0x04)
|
||||
remove_chr(0x13)
|
||||
remove_chr(0x14)
|
||||
remove_chr(0x15)
|
||||
remove_chr(0x16)
|
||||
dprint 'a','b','o','r','t','e','d',0,
|
||||
show_object(0x45)
|
||||
enable_object(0x45)
|
||||
label(0x06)
|
||||
remove_hudmsgs
|
||||
|
||||
@@ -5433,8 +5433,8 @@ u8 func1030_holo7_main[] = {
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS)
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE)
|
||||
unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE)
|
||||
hide_object(0x45)
|
||||
hide_chr(0x04)
|
||||
disable_object(0x45)
|
||||
disable_chr(0x04)
|
||||
|
||||
beginloop(0x57)
|
||||
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, 0x012b, AILIST_HOLO7_INIT_GUARD1, SPAWNFLAG_00000010 | SPAWNFLAG_00000200 | SPAWNFLAG_NOBLOOD, /*goto*/ 0x59)
|
||||
@@ -5505,14 +5505,14 @@ u8 func1030_holo7_main[] = {
|
||||
mute_channel(CHANNEL_5)
|
||||
mute_channel(CHANNEL_6)
|
||||
mute_channel(CHANNEL_7)
|
||||
show_chr(0x04)
|
||||
enable_chr(0x04)
|
||||
remove_chr(0x19)
|
||||
remove_chr(0x1a)
|
||||
remove_chr(0x1b)
|
||||
remove_chr(0x17)
|
||||
remove_chr(0x18)
|
||||
dprint 'a','b','o','r','t','e','d',0,
|
||||
show_object(0x45)
|
||||
enable_object(0x45)
|
||||
remove_hudmsgs
|
||||
|
||||
beginloop(0x6d)
|
||||
|
||||
@@ -1318,8 +1318,8 @@ u8 func1009_weaponscache[] = {
|
||||
play_sound(SFX_00F7, -1)
|
||||
assign_sound(SFX_043B, CHANNEL_5)
|
||||
control_sound_from_object(CHANNEL_5, OBJ_CMP150_1, TRUE)
|
||||
hide_object(OBJ_CACHEDOOR1)
|
||||
hide_object(OBJ_CACHEDOOR2)
|
||||
disable_object(OBJ_CACHEDOOR1)
|
||||
disable_object(OBJ_CACHEDOOR2)
|
||||
unset_object_flag(OBJ_CMP150_1, OBJFLAG_UNCOLLECTABLE)
|
||||
unset_object_flag2(OBJ_CMP150_1, OBJFLAG2_INVISIBLE)
|
||||
unset_object_flag(OBJ_CMP150_2, OBJFLAG_UNCOLLECTABLE)
|
||||
@@ -2497,8 +2497,8 @@ u8 func1415_outro_audio[] = {
|
||||
unset_stage_flag(STAGEFLAG_TRIGGER_OUTRO_AUDIO)
|
||||
label(0x2f)
|
||||
restart_timer
|
||||
hide_object(0x37)
|
||||
hide_object(0x38)
|
||||
disable_object(0x37)
|
||||
disable_object(0x38)
|
||||
mute_channel(CHANNEL_0)
|
||||
mute_channel(CHANNEL_1)
|
||||
mute_channel(CHANNEL_2)
|
||||
|
||||
+121
-121
@@ -797,7 +797,7 @@ u8 func1002_intro[] = {
|
||||
unset_chr_chrflag(CHR_TAKER2, CHRCFLAG_HIDDEN)
|
||||
set_chr_hiddenflag(CHR_TAKER2, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x0174, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_TAKER2, 4)
|
||||
show_object(OBJ_DROPSHIP)
|
||||
enable_object(OBJ_DROPSHIP)
|
||||
set_object_flag2(OBJ_DROPSHIP, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_DROPSHIP, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0175, OBJ_DROPSHIP, 0x04, 0xffff)
|
||||
@@ -1048,7 +1048,7 @@ u8 func1002_intro[] = {
|
||||
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x01bc, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
|
||||
|
||||
show_object(OBJ_DROPSHIP)
|
||||
enable_object(OBJ_DROPSHIP)
|
||||
set_object_flag2(OBJ_DROPSHIP, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_DROPSHIP, OBJFLAG3_00000010)
|
||||
object_do_animation(0x01bd, OBJ_DROPSHIP, 0x04, 0xffff)
|
||||
@@ -1115,7 +1115,7 @@ u8 func1002_intro[] = {
|
||||
set_chr_hiddenflag(CHR_TAKER2, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x01ba, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_TAKER2, 2)
|
||||
|
||||
hide_object(OBJ_DROPSHIP)
|
||||
disable_object(OBJ_DROPSHIP)
|
||||
stop_cutscene_track
|
||||
stop_ambient_track
|
||||
play_x_track(XREASON_DEFAULT, 10, 30)
|
||||
@@ -1134,7 +1134,7 @@ u8 func1002_intro[] = {
|
||||
label(0x4f)
|
||||
camera_movement(0x01be)
|
||||
cmd0175(60)
|
||||
hide_object(OBJ_DROPSHIP)
|
||||
disable_object(OBJ_DROPSHIP)
|
||||
if_controller_button_pressed(/*goto*/ 0x56)
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
||||
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
||||
@@ -1211,7 +1211,7 @@ u8 func1002_intro[] = {
|
||||
set_chr_hiddenflag(CHR_TAKER2, CHRHFLAG_00020000)
|
||||
set_chr_chrflag(CHR_TAKER2, CHRCFLAG_00000001)
|
||||
chr_do_animation(0x01c1, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_TAKER2, 2)
|
||||
hide_object(OBJ_DROPSHIP)
|
||||
disable_object(OBJ_DROPSHIP)
|
||||
stop_cutscene_track
|
||||
stop_ambient_track
|
||||
play_x_track(XREASON_DEFAULT, 10, 30)
|
||||
@@ -1403,8 +1403,8 @@ u8 func1003_give_items[] = {
|
||||
give_object_to_chr(0x89, CHR_COOP)
|
||||
chr_draw_weapon(CHR_BOND, WEAPON_UNARMED)
|
||||
chr_draw_weapon(CHR_COOP, WEAPON_UNARMED)
|
||||
hide_object(0x02)
|
||||
hide_object(0x8a)
|
||||
disable_object(0x02)
|
||||
disable_object(0x8a)
|
||||
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x08)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
@@ -1414,15 +1414,15 @@ u8 func1003_give_items[] = {
|
||||
give_object_to_chr(0x8a, CHR_COOP)
|
||||
chr_draw_weapon(CHR_BOND, WEAPON_SNIPERRIFLE)
|
||||
chr_draw_weapon(CHR_COOP, WEAPON_SNIPERRIFLE)
|
||||
hide_object(0x01)
|
||||
hide_object(0x89)
|
||||
disable_object(0x01)
|
||||
disable_object(0x89)
|
||||
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x08)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// Velvet doesn't exist
|
||||
label(0x08)
|
||||
hide_object(0x8a)
|
||||
hide_object(0x89)
|
||||
disable_object(0x8a)
|
||||
disable_object(0x89)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
@@ -1694,14 +1694,14 @@ u8 func1005_toggle_snipers[] = {
|
||||
|
||||
// A and SA
|
||||
label(0x2d)
|
||||
hide_chr(CHR_SNIPER1)
|
||||
hide_chr(CHR_SNIPER2)
|
||||
hide_chr(CHR_SNIPER3)
|
||||
hide_chr(CHR_SNIPER4)
|
||||
hide_chr(CHR_SNIPER5)
|
||||
hide_chr(CHR_SNIPER6)
|
||||
hide_chr(CHR_SNIPER7)
|
||||
hide_chr(CHR_SNIPER8)
|
||||
disable_chr(CHR_SNIPER1)
|
||||
disable_chr(CHR_SNIPER2)
|
||||
disable_chr(CHR_SNIPER3)
|
||||
disable_chr(CHR_SNIPER4)
|
||||
disable_chr(CHR_SNIPER5)
|
||||
disable_chr(CHR_SNIPER6)
|
||||
disable_chr(CHR_SNIPER7)
|
||||
disable_chr(CHR_SNIPER8)
|
||||
|
||||
beginloop(0x08)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
@@ -1710,12 +1710,12 @@ u8 func1005_toggle_snipers[] = {
|
||||
|
||||
// PA
|
||||
label(0x2e)
|
||||
hide_chr(CHR_SNIPER1)
|
||||
hide_chr(CHR_SNIPER2)
|
||||
hide_chr(CHR_SNIPER3)
|
||||
hide_chr(CHR_SNIPER4)
|
||||
hide_chr(CHR_SNIPER6)
|
||||
hide_chr(CHR_SNIPER7)
|
||||
disable_chr(CHR_SNIPER1)
|
||||
disable_chr(CHR_SNIPER2)
|
||||
disable_chr(CHR_SNIPER3)
|
||||
disable_chr(CHR_SNIPER4)
|
||||
disable_chr(CHR_SNIPER6)
|
||||
disable_chr(CHR_SNIPER7)
|
||||
set_ailist(CHR_SNIPER5, AILIST_ENABLE_SNIPER)
|
||||
set_ailist(CHR_SNIPER8, AILIST_ENABLE_SNIPER)
|
||||
|
||||
@@ -1735,17 +1735,17 @@ u8 func1005_toggle_snipers[] = {
|
||||
|
||||
// All difficulties
|
||||
label(0x06)
|
||||
show_chr(CHR_SNIPER1)
|
||||
enable_chr(CHR_SNIPER1)
|
||||
yield
|
||||
show_chr(CHR_SNIPER2)
|
||||
enable_chr(CHR_SNIPER2)
|
||||
yield
|
||||
show_chr(CHR_SNIPER3)
|
||||
enable_chr(CHR_SNIPER3)
|
||||
yield
|
||||
show_chr(CHR_SNIPER4)
|
||||
enable_chr(CHR_SNIPER4)
|
||||
yield
|
||||
show_chr(CHR_SNIPER6)
|
||||
enable_chr(CHR_SNIPER6)
|
||||
yield
|
||||
show_chr(CHR_SNIPER7)
|
||||
enable_chr(CHR_SNIPER7)
|
||||
yield
|
||||
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d)
|
||||
goto_next(0x06)
|
||||
@@ -1753,9 +1753,9 @@ u8 func1005_toggle_snipers[] = {
|
||||
// A and SA
|
||||
label(0x2d)
|
||||
yield
|
||||
show_chr(CHR_SNIPER5)
|
||||
enable_chr(CHR_SNIPER5)
|
||||
yield
|
||||
show_chr(CHR_SNIPER8)
|
||||
enable_chr(CHR_SNIPER8)
|
||||
rebuild_teams
|
||||
rebuild_squadrons
|
||||
|
||||
@@ -2141,9 +2141,9 @@ u8 func100b_invoke_hackers[] = {
|
||||
yield
|
||||
yield
|
||||
yield
|
||||
hide_chr(CHR_HACKER1)
|
||||
hide_chr(CHR_HACKER2)
|
||||
hide_chr(CHR_HACKER3)
|
||||
disable_chr(CHR_HACKER1)
|
||||
disable_chr(CHR_HACKER2)
|
||||
disable_chr(CHR_HACKER3)
|
||||
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d)
|
||||
goto_next(0x04)
|
||||
|
||||
@@ -2169,11 +2169,11 @@ u8 func100b_invoke_hackers[] = {
|
||||
set_stage_flag(STAGEFLAG_HACKERS_STARTED)
|
||||
set_object_flag3(0x0b, OBJFLAG3_RTRACKED_YELLOW)
|
||||
set_object_flag3(0x0d, OBJFLAG3_RTRACKED_YELLOW)
|
||||
show_chr(CHR_HACKER1)
|
||||
enable_chr(CHR_HACKER1)
|
||||
yield
|
||||
show_chr(CHR_HACKER2)
|
||||
enable_chr(CHR_HACKER2)
|
||||
yield
|
||||
show_chr(CHR_HACKER3)
|
||||
enable_chr(CHR_HACKER3)
|
||||
yield
|
||||
set_ailist(CHR_HACKER1, AILIST_HACKER)
|
||||
set_ailist(CHR_HACKER2, AILIST_HACKER)
|
||||
@@ -2629,15 +2629,15 @@ u8 func040f_start_path01[] = {
|
||||
u8 func101b_toggle_basement_chrs[] = {
|
||||
yield
|
||||
yield
|
||||
hide_chr(CHR_BASEMENT1)
|
||||
hide_chr(CHR_BASEMENT2)
|
||||
hide_chr(CHR_BASEMENT3)
|
||||
hide_chr(CHR_BASEMENT4)
|
||||
hide_chr(CHR_BASEMENT5)
|
||||
hide_chr(CHR_BASEMENT6)
|
||||
hide_chr(CHR_BASEMENT7)
|
||||
hide_chr(CHR_BASEMENT8)
|
||||
hide_chr(CHR_CARRINGTON)
|
||||
disable_chr(CHR_BASEMENT1)
|
||||
disable_chr(CHR_BASEMENT2)
|
||||
disable_chr(CHR_BASEMENT3)
|
||||
disable_chr(CHR_BASEMENT4)
|
||||
disable_chr(CHR_BASEMENT5)
|
||||
disable_chr(CHR_BASEMENT6)
|
||||
disable_chr(CHR_BASEMENT7)
|
||||
disable_chr(CHR_BASEMENT8)
|
||||
disable_chr(CHR_CARRINGTON)
|
||||
|
||||
// Not sure which room 0x0087 is
|
||||
beginloop(0x04)
|
||||
@@ -2646,24 +2646,24 @@ u8 func101b_toggle_basement_chrs[] = {
|
||||
endloop(0x04)
|
||||
|
||||
label(0x2d)
|
||||
show_chr(CHR_BASEMENT1)
|
||||
enable_chr(CHR_BASEMENT1)
|
||||
yield
|
||||
show_chr(CHR_BASEMENT2)
|
||||
enable_chr(CHR_BASEMENT2)
|
||||
yield
|
||||
show_chr(CHR_BASEMENT3)
|
||||
enable_chr(CHR_BASEMENT3)
|
||||
yield
|
||||
show_chr(CHR_BASEMENT4)
|
||||
enable_chr(CHR_BASEMENT4)
|
||||
yield
|
||||
show_chr(CHR_BASEMENT5)
|
||||
enable_chr(CHR_BASEMENT5)
|
||||
yield
|
||||
show_chr(CHR_BASEMENT6)
|
||||
enable_chr(CHR_BASEMENT6)
|
||||
yield
|
||||
show_chr(CHR_BASEMENT7)
|
||||
enable_chr(CHR_BASEMENT7)
|
||||
yield
|
||||
show_chr(CHR_BASEMENT8)
|
||||
enable_chr(CHR_BASEMENT8)
|
||||
yield
|
||||
yield
|
||||
show_chr(CHR_CARRINGTON)
|
||||
enable_chr(CHR_CARRINGTON)
|
||||
yield
|
||||
rebuild_teams
|
||||
rebuild_squadrons
|
||||
@@ -2804,38 +2804,38 @@ u8 func101c_toggle_villa_guards[] = {
|
||||
|
||||
// A and SA
|
||||
label(0x2d)
|
||||
hide_chr(0x23)
|
||||
hide_chr(0x24)
|
||||
hide_chr(0x25)
|
||||
hide_chr(0x26)
|
||||
hide_chr(0x27)
|
||||
hide_chr(0x28)
|
||||
hide_chr(0x29)
|
||||
hide_chr(0x2a)
|
||||
hide_chr(0x2b)
|
||||
hide_chr(0x2c)
|
||||
hide_chr(0x2d)
|
||||
hide_chr(0x2e)
|
||||
hide_chr(0x2f)
|
||||
hide_chr(0x30)
|
||||
hide_chr(0x31)
|
||||
hide_chr(0x32)
|
||||
hide_chr(0x33)
|
||||
hide_chr(0x34)
|
||||
hide_chr(0x35)
|
||||
hide_chr(0x36)
|
||||
hide_chr(0x37)
|
||||
hide_chr(0x38)
|
||||
hide_chr(0x39)
|
||||
hide_chr(0x3a)
|
||||
hide_chr(0x3b)
|
||||
hide_chr(0x3c)
|
||||
hide_chr(0x3d)
|
||||
hide_chr(0x3e)
|
||||
hide_chr(0x3f)
|
||||
hide_chr(0x40)
|
||||
hide_chr(0x41)
|
||||
hide_chr(0x42)
|
||||
disable_chr(0x23)
|
||||
disable_chr(0x24)
|
||||
disable_chr(0x25)
|
||||
disable_chr(0x26)
|
||||
disable_chr(0x27)
|
||||
disable_chr(0x28)
|
||||
disable_chr(0x29)
|
||||
disable_chr(0x2a)
|
||||
disable_chr(0x2b)
|
||||
disable_chr(0x2c)
|
||||
disable_chr(0x2d)
|
||||
disable_chr(0x2e)
|
||||
disable_chr(0x2f)
|
||||
disable_chr(0x30)
|
||||
disable_chr(0x31)
|
||||
disable_chr(0x32)
|
||||
disable_chr(0x33)
|
||||
disable_chr(0x34)
|
||||
disable_chr(0x35)
|
||||
disable_chr(0x36)
|
||||
disable_chr(0x37)
|
||||
disable_chr(0x38)
|
||||
disable_chr(0x39)
|
||||
disable_chr(0x3a)
|
||||
disable_chr(0x3b)
|
||||
disable_chr(0x3c)
|
||||
disable_chr(0x3d)
|
||||
disable_chr(0x3e)
|
||||
disable_chr(0x3f)
|
||||
disable_chr(0x40)
|
||||
disable_chr(0x41)
|
||||
disable_chr(0x42)
|
||||
|
||||
// @bug: It is possible to cross room 0x002a in a single frame on coop if
|
||||
// hugging the corner tightly, which means the guards will not be unhidden.
|
||||
@@ -2845,69 +2845,69 @@ u8 func101c_toggle_villa_guards[] = {
|
||||
endloop(0x04)
|
||||
|
||||
label(0x2d)
|
||||
show_chr(0x23)
|
||||
enable_chr(0x23)
|
||||
yield
|
||||
show_chr(0x24)
|
||||
enable_chr(0x24)
|
||||
yield
|
||||
show_chr(0x25)
|
||||
enable_chr(0x25)
|
||||
yield
|
||||
show_chr(0x26)
|
||||
enable_chr(0x26)
|
||||
yield
|
||||
show_chr(0x27)
|
||||
enable_chr(0x27)
|
||||
yield
|
||||
show_chr(0x28)
|
||||
enable_chr(0x28)
|
||||
yield
|
||||
show_chr(0x29)
|
||||
enable_chr(0x29)
|
||||
yield
|
||||
show_chr(0x2a)
|
||||
enable_chr(0x2a)
|
||||
yield
|
||||
show_chr(0x2b)
|
||||
enable_chr(0x2b)
|
||||
yield
|
||||
show_chr(0x2c)
|
||||
enable_chr(0x2c)
|
||||
yield
|
||||
show_chr(0x2d)
|
||||
enable_chr(0x2d)
|
||||
yield
|
||||
show_chr(0x2e)
|
||||
enable_chr(0x2e)
|
||||
yield
|
||||
show_chr(0x2f)
|
||||
enable_chr(0x2f)
|
||||
yield
|
||||
show_chr(0x30)
|
||||
enable_chr(0x30)
|
||||
yield
|
||||
show_chr(0x31)
|
||||
enable_chr(0x31)
|
||||
yield
|
||||
show_chr(0x32)
|
||||
enable_chr(0x32)
|
||||
yield
|
||||
show_chr(0x33)
|
||||
enable_chr(0x33)
|
||||
yield
|
||||
show_chr(0x34)
|
||||
enable_chr(0x34)
|
||||
yield
|
||||
show_chr(0x35)
|
||||
enable_chr(0x35)
|
||||
yield
|
||||
show_chr(0x36)
|
||||
enable_chr(0x36)
|
||||
yield
|
||||
show_chr(0x37)
|
||||
enable_chr(0x37)
|
||||
yield
|
||||
show_chr(0x38)
|
||||
enable_chr(0x38)
|
||||
yield
|
||||
show_chr(0x39)
|
||||
enable_chr(0x39)
|
||||
yield
|
||||
show_chr(0x3a)
|
||||
enable_chr(0x3a)
|
||||
yield
|
||||
show_chr(0x3b)
|
||||
enable_chr(0x3b)
|
||||
yield
|
||||
show_chr(0x3c)
|
||||
enable_chr(0x3c)
|
||||
yield
|
||||
show_chr(0x3d)
|
||||
enable_chr(0x3d)
|
||||
yield
|
||||
show_chr(0x3e)
|
||||
enable_chr(0x3e)
|
||||
yield
|
||||
show_chr(0x3f)
|
||||
enable_chr(0x3f)
|
||||
yield
|
||||
show_chr(0x40)
|
||||
enable_chr(0x40)
|
||||
yield
|
||||
show_chr(0x41)
|
||||
enable_chr(0x41)
|
||||
yield
|
||||
show_chr(0x42)
|
||||
enable_chr(0x42)
|
||||
rebuild_teams
|
||||
rebuild_squadrons
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
+10
-10
@@ -879,7 +879,7 @@ u8 func0c01_outro[] = {
|
||||
chr_do_animation(0x01a3, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 4)
|
||||
|
||||
#define show_object_with_animation(object, animation) \
|
||||
show_object(object) \
|
||||
enable_object(object) \
|
||||
set_object_flag2(object, OBJFLAG2_04000000) \
|
||||
set_object_flag3(object, OBJFLAG3_00000010) \
|
||||
object_do_animation(animation, object, 0x04, 0xffff)
|
||||
@@ -894,7 +894,7 @@ u8 func0c01_outro[] = {
|
||||
show_object_with_animation(0x13, 0x01a9)
|
||||
show_object_with_animation(0x14, 0x01aa)
|
||||
|
||||
show_object(0x0d)
|
||||
enable_object(0x0d)
|
||||
unset_object_flag(0x0d, OBJFLAG_DEACTIVATED)
|
||||
set_object_flag2(0x0d, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x0d, OBJFLAG3_00000010)
|
||||
@@ -944,7 +944,7 @@ u8 func0c01_outro[] = {
|
||||
|
||||
label(0xb8)
|
||||
mute_channel(CHANNEL_10)
|
||||
hide_object(0x0d)
|
||||
disable_object(0x0d)
|
||||
camera_movement(0x01ac)
|
||||
unset_chr_chrflag(CHR_SKEDAR1, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_SKEDAR2, CHRCFLAG_HIDDEN)
|
||||
@@ -991,7 +991,7 @@ u8 func0c01_outro[] = {
|
||||
show_object_with_animation(0x14, 0x030d)
|
||||
show_object_with_animation(0x0d, 0x030f)
|
||||
|
||||
show_object(0x16)
|
||||
enable_object(0x16)
|
||||
set_object_flag2(0x16, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x16, OBJFLAG3_00000010)
|
||||
object_do_animation(0x01b1, 0x16, 0x02, 0xffff)
|
||||
@@ -1181,7 +1181,7 @@ u8 func1002_intro[] = {
|
||||
unset_chr_chrflag(0x1a, CHRCFLAG_HIDDEN)
|
||||
set_chr_hiddenflag(0x1a, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x02c0, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, 0x1a, 4)
|
||||
show_object(0x0d)
|
||||
enable_object(0x0d)
|
||||
set_object_flag2(0x0d, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x0d, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02c1, 0x0d, 0x04, 0xffff)
|
||||
@@ -1416,11 +1416,11 @@ u8 func1002_intro[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
||||
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x02c4, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
|
||||
show_object(0x52)
|
||||
enable_object(0x52)
|
||||
set_object_flag2(0x52, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x52, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02c5, 0x52, 0x04, 0xffff)
|
||||
show_object(0x53)
|
||||
enable_object(0x53)
|
||||
set_object_flag2(0x53, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x53, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02c6, 0x53, 0x04, 0xffff)
|
||||
@@ -1515,11 +1515,11 @@ u8 func1002_intro[] = {
|
||||
set_object_flag(0x0d, OBJFLAG_DEACTIVATED)
|
||||
set_object_flag3(0x0d, OBJFLAG3_00000010)
|
||||
object_do_animation(0x01b4, 0x0d, 0x01, 0xffff)
|
||||
show_object(0x52)
|
||||
enable_object(0x52)
|
||||
set_object_flag2(0x52, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x52, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02c5, 0x52, 0x04, 0xfffe)
|
||||
show_object(0x53)
|
||||
enable_object(0x53)
|
||||
set_object_flag2(0x53, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x53, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02c6, 0x53, 0x04, 0xfffe)
|
||||
@@ -3200,7 +3200,7 @@ u8 func1022_skedar_shuttle[] = {
|
||||
endloop(0x71)
|
||||
|
||||
label(0x08)
|
||||
show_object(OBJ_SKEDAR_SHUTTLE)
|
||||
enable_object(OBJ_SKEDAR_SHUTTLE)
|
||||
set_object_flag2(OBJ_SKEDAR_SHUTTLE, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_SKEDAR_SHUTTLE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x045a, OBJ_SKEDAR_SHUTTLE, 0x04, 0xffff)
|
||||
|
||||
+75
-75
@@ -2796,7 +2796,7 @@ u8 func0c01_outro[] = {
|
||||
label(0x2c)
|
||||
set_target_chr(CHR_COOP)
|
||||
label(0x06)
|
||||
hide_object(0x2c)
|
||||
disable_object(0x2c)
|
||||
camera_movement(0x01e1)
|
||||
play_cutscene_track(MUSIC_ATTACKSHIP_OUTRO)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
@@ -2815,7 +2815,7 @@ u8 func0c01_outro[] = {
|
||||
set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x01e3, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 4)
|
||||
|
||||
show_object(OBJ_OUTRO_SHUTTLE)
|
||||
enable_object(OBJ_OUTRO_SHUTTLE)
|
||||
set_object_flag2(OBJ_OUTRO_SHUTTLE, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_OUTRO_SHUTTLE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x01e4, OBJ_OUTRO_SHUTTLE, 0x04, 0xffff)
|
||||
@@ -3373,7 +3373,7 @@ u8 func1018_place_elvis_in_hangar[] = {
|
||||
|
||||
u8 func1002_hangar_shuttle[] = {
|
||||
yield
|
||||
show_object(OBJ_HANGAR_SHUTTLE)
|
||||
enable_object(OBJ_HANGAR_SHUTTLE)
|
||||
set_object_flag3(OBJ_HANGAR_SHUTTLE, OBJFLAG3_00000010)
|
||||
object_set_modelpart_visible(OBJ_HANGAR_SHUTTLE, MODELPART_SKSHUTTLE_GANGWAY, FALSE)
|
||||
|
||||
@@ -3390,7 +3390,7 @@ u8 func1002_hangar_shuttle[] = {
|
||||
goto_first(0x09)
|
||||
|
||||
label(0x06)
|
||||
hide_object(OBJ_HANGAR_SHUTTLE)
|
||||
disable_object(OBJ_HANGAR_SHUTTLE)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
@@ -3521,13 +3521,13 @@ u8 func101f_enable_bridge_skedar[] = {
|
||||
unset_object_flag2(0x42, OBJFLAG2_LOCKEDFRONT)
|
||||
unset_object_flag2(0x41, OBJFLAG2_AICANNOTUSE)
|
||||
unset_object_flag2(0x42, OBJFLAG2_AICANNOTUSE)
|
||||
show_chr(0x21)
|
||||
show_chr(0x22)
|
||||
show_chr(CHR_BRIDGE1)
|
||||
show_chr(CHR_BRIDGE2)
|
||||
show_chr(CHR_BRIDGE3)
|
||||
show_chr(CHR_BRIDGESPAWNER1)
|
||||
show_chr(CHR_BRIDGESPAWNER2)
|
||||
enable_chr(0x21)
|
||||
enable_chr(0x22)
|
||||
enable_chr(CHR_BRIDGE1)
|
||||
enable_chr(CHR_BRIDGE2)
|
||||
enable_chr(CHR_BRIDGE3)
|
||||
enable_chr(CHR_BRIDGESPAWNER1)
|
||||
enable_chr(CHR_BRIDGESPAWNER2)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
@@ -3622,41 +3622,41 @@ u8 func1423_setup_environment[] = {
|
||||
|
||||
u8 func1025_toggle_chrs[] = {
|
||||
yield
|
||||
hide_chr(0x0b)
|
||||
hide_chr(0x0c)
|
||||
hide_chr(CHR_SUSPENDEDANIM1)
|
||||
hide_chr(CHR_SUSPENDEDANIM2)
|
||||
hide_chr(CHR_SUSPENDEDANIM3)
|
||||
hide_chr(CHR_SUSPENDEDANIM4)
|
||||
hide_chr(0x11)
|
||||
hide_chr(0x12)
|
||||
hide_chr(0x13)
|
||||
hide_chr(0x14)
|
||||
hide_chr(0x15)
|
||||
hide_chr(0x16)
|
||||
hide_chr(0x17)
|
||||
hide_chr(0x18)
|
||||
hide_chr(0x19)
|
||||
hide_chr(0x1a)
|
||||
hide_chr(0x1b)
|
||||
hide_chr(0x1c)
|
||||
hide_chr(0x1d)
|
||||
hide_chr(0x1e)
|
||||
hide_chr(0x1f)
|
||||
hide_chr(0x20)
|
||||
hide_chr(0x27)
|
||||
hide_chr(0x28)
|
||||
hide_chr(0x29)
|
||||
hide_chr(0x2a)
|
||||
hide_chr(0x2b)
|
||||
hide_chr(0x2c)
|
||||
hide_chr(0x21)
|
||||
hide_chr(0x22)
|
||||
hide_chr(CHR_BRIDGE1)
|
||||
hide_chr(CHR_BRIDGE2)
|
||||
hide_chr(CHR_BRIDGE3)
|
||||
hide_chr(CHR_BRIDGESPAWNER1)
|
||||
hide_chr(CHR_BRIDGESPAWNER2)
|
||||
disable_chr(0x0b)
|
||||
disable_chr(0x0c)
|
||||
disable_chr(CHR_SUSPENDEDANIM1)
|
||||
disable_chr(CHR_SUSPENDEDANIM2)
|
||||
disable_chr(CHR_SUSPENDEDANIM3)
|
||||
disable_chr(CHR_SUSPENDEDANIM4)
|
||||
disable_chr(0x11)
|
||||
disable_chr(0x12)
|
||||
disable_chr(0x13)
|
||||
disable_chr(0x14)
|
||||
disable_chr(0x15)
|
||||
disable_chr(0x16)
|
||||
disable_chr(0x17)
|
||||
disable_chr(0x18)
|
||||
disable_chr(0x19)
|
||||
disable_chr(0x1a)
|
||||
disable_chr(0x1b)
|
||||
disable_chr(0x1c)
|
||||
disable_chr(0x1d)
|
||||
disable_chr(0x1e)
|
||||
disable_chr(0x1f)
|
||||
disable_chr(0x20)
|
||||
disable_chr(0x27)
|
||||
disable_chr(0x28)
|
||||
disable_chr(0x29)
|
||||
disable_chr(0x2a)
|
||||
disable_chr(0x2b)
|
||||
disable_chr(0x2c)
|
||||
disable_chr(0x21)
|
||||
disable_chr(0x22)
|
||||
disable_chr(CHR_BRIDGE1)
|
||||
disable_chr(CHR_BRIDGE2)
|
||||
disable_chr(CHR_BRIDGE3)
|
||||
disable_chr(CHR_BRIDGESPAWNER1)
|
||||
disable_chr(CHR_BRIDGESPAWNER2)
|
||||
|
||||
beginloop(0x08)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
@@ -3667,61 +3667,61 @@ u8 func1025_toggle_chrs[] = {
|
||||
endloop(0x08)
|
||||
|
||||
label(0x06)
|
||||
show_chr(0x0b)
|
||||
enable_chr(0x0b)
|
||||
yield
|
||||
show_chr(0x0c)
|
||||
enable_chr(0x0c)
|
||||
yield
|
||||
show_chr(CHR_SUSPENDEDANIM1)
|
||||
enable_chr(CHR_SUSPENDEDANIM1)
|
||||
yield
|
||||
show_chr(CHR_SUSPENDEDANIM2)
|
||||
enable_chr(CHR_SUSPENDEDANIM2)
|
||||
yield
|
||||
show_chr(CHR_SUSPENDEDANIM3)
|
||||
enable_chr(CHR_SUSPENDEDANIM3)
|
||||
yield
|
||||
show_chr(CHR_SUSPENDEDANIM4)
|
||||
enable_chr(CHR_SUSPENDEDANIM4)
|
||||
yield
|
||||
show_chr(0x11)
|
||||
enable_chr(0x11)
|
||||
yield
|
||||
show_chr(0x12)
|
||||
enable_chr(0x12)
|
||||
yield
|
||||
show_chr(0x13)
|
||||
enable_chr(0x13)
|
||||
yield
|
||||
show_chr(0x14)
|
||||
enable_chr(0x14)
|
||||
yield
|
||||
show_chr(0x15)
|
||||
enable_chr(0x15)
|
||||
yield
|
||||
show_chr(0x16)
|
||||
enable_chr(0x16)
|
||||
yield
|
||||
show_chr(0x17)
|
||||
enable_chr(0x17)
|
||||
yield
|
||||
show_chr(0x18)
|
||||
enable_chr(0x18)
|
||||
yield
|
||||
show_chr(0x19)
|
||||
enable_chr(0x19)
|
||||
yield
|
||||
show_chr(0x1a)
|
||||
enable_chr(0x1a)
|
||||
yield
|
||||
show_chr(0x1b)
|
||||
enable_chr(0x1b)
|
||||
yield
|
||||
show_chr(0x1c)
|
||||
enable_chr(0x1c)
|
||||
yield
|
||||
show_chr(0x1d)
|
||||
enable_chr(0x1d)
|
||||
yield
|
||||
show_chr(0x1e)
|
||||
enable_chr(0x1e)
|
||||
yield
|
||||
show_chr(0x1f)
|
||||
enable_chr(0x1f)
|
||||
yield
|
||||
show_chr(0x20)
|
||||
enable_chr(0x20)
|
||||
yield
|
||||
show_chr(0x27)
|
||||
enable_chr(0x27)
|
||||
yield
|
||||
show_chr(0x28)
|
||||
enable_chr(0x28)
|
||||
yield
|
||||
show_chr(0x29)
|
||||
enable_chr(0x29)
|
||||
yield
|
||||
show_chr(0x2a)
|
||||
enable_chr(0x2a)
|
||||
yield
|
||||
show_chr(0x2b)
|
||||
enable_chr(0x2b)
|
||||
yield
|
||||
show_chr(0x2c)
|
||||
enable_chr(0x2c)
|
||||
yield
|
||||
set_ailist(CHR_MAIAN1, AILIST_CLOAK_AND_REMOVE)
|
||||
set_ailist(CHR_MAIAN2, AILIST_CLOAK_AND_REMOVE)
|
||||
@@ -3767,7 +3767,7 @@ u8 func1026_hide_necklace[] = {
|
||||
|
||||
// A and SA
|
||||
label(0x2c)
|
||||
hide_object(OBJ_NECKLACE)
|
||||
disable_object(OBJ_NECKLACE)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
|
||||
+29
-29
@@ -4247,7 +4247,7 @@ u8 func1028_toggle_mechanic[] = {
|
||||
|
||||
label(0x06)
|
||||
dprint 'D','E','L','E','T','E',' ','M','E','C','H','\n',0,
|
||||
hide_chr(CHR_MECHANIC)
|
||||
disable_chr(CHR_MECHANIC)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
@@ -4354,59 +4354,59 @@ u8 func102f_shuffle_disguise[] = {
|
||||
if_rand_lt(204, /*goto*/ 0x0b)
|
||||
|
||||
// Rand >= 204 (52 out of 256 chance)
|
||||
hide_object(OBJ_LABCOAT1)
|
||||
hide_object(OBJ_LABCOAT2)
|
||||
hide_object(OBJ_LABCOAT3)
|
||||
hide_object(OBJ_LABCOAT4)
|
||||
disable_object(OBJ_LABCOAT1)
|
||||
disable_object(OBJ_LABCOAT2)
|
||||
disable_object(OBJ_LABCOAT3)
|
||||
disable_object(OBJ_LABCOAT4)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// Rand < 51 (51 out of 256 chance)
|
||||
label(0x08)
|
||||
hide_object(OBJ_LABCOAT2)
|
||||
hide_object(OBJ_LABCOAT3)
|
||||
hide_object(OBJ_LABCOAT4)
|
||||
hide_object(OBJ_LABCOAT5)
|
||||
disable_object(OBJ_LABCOAT2)
|
||||
disable_object(OBJ_LABCOAT3)
|
||||
disable_object(OBJ_LABCOAT4)
|
||||
disable_object(OBJ_LABCOAT5)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// Rand >= 51 and < 102 (51 out of 256 chance)
|
||||
label(0x09)
|
||||
hide_object(OBJ_LABCOAT1)
|
||||
hide_object(OBJ_LABCOAT3)
|
||||
hide_object(OBJ_LABCOAT4)
|
||||
hide_object(OBJ_LABCOAT5)
|
||||
disable_object(OBJ_LABCOAT1)
|
||||
disable_object(OBJ_LABCOAT3)
|
||||
disable_object(OBJ_LABCOAT4)
|
||||
disable_object(OBJ_LABCOAT5)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// Rand >= 102 and < 153 (51 out of 256 chance)
|
||||
label(0x0a)
|
||||
hide_object(OBJ_LABCOAT1)
|
||||
hide_object(OBJ_LABCOAT2)
|
||||
hide_object(OBJ_LABCOAT4)
|
||||
hide_object(OBJ_LABCOAT5)
|
||||
disable_object(OBJ_LABCOAT1)
|
||||
disable_object(OBJ_LABCOAT2)
|
||||
disable_object(OBJ_LABCOAT4)
|
||||
disable_object(OBJ_LABCOAT5)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// Rand >= 153 and < 204 (51 out of 256 chance)
|
||||
label(0x0b)
|
||||
hide_object(OBJ_LABCOAT1)
|
||||
hide_object(OBJ_LABCOAT2)
|
||||
hide_object(OBJ_LABCOAT3)
|
||||
hide_object(OBJ_LABCOAT5)
|
||||
disable_object(OBJ_LABCOAT1)
|
||||
disable_object(OBJ_LABCOAT2)
|
||||
disable_object(OBJ_LABCOAT3)
|
||||
disable_object(OBJ_LABCOAT5)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// A and SA
|
||||
label(0x0c)
|
||||
give_object_to_chr(OBJ_LABCOAT1, CHR_LABTECH_SHOWERS)
|
||||
hide_object(OBJ_LABCOAT2)
|
||||
hide_object(OBJ_LABCOAT3)
|
||||
hide_object(OBJ_LABCOAT4)
|
||||
hide_object(OBJ_LABCOAT5)
|
||||
disable_object(OBJ_LABCOAT2)
|
||||
disable_object(OBJ_LABCOAT3)
|
||||
disable_object(OBJ_LABCOAT4)
|
||||
disable_object(OBJ_LABCOAT5)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// Unreachable
|
||||
label(0x0d)
|
||||
hide_object(OBJ_LABCOAT1)
|
||||
hide_object(OBJ_LABCOAT2)
|
||||
hide_object(OBJ_LABCOAT4)
|
||||
hide_object(OBJ_LABCOAT5)
|
||||
disable_object(OBJ_LABCOAT1)
|
||||
disable_object(OBJ_LABCOAT2)
|
||||
disable_object(OBJ_LABCOAT4)
|
||||
disable_object(OBJ_LABCOAT5)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
|
||||
+11
-11
@@ -1772,7 +1772,7 @@ u8 func040d_90c8[] = {
|
||||
|
||||
u8 func040e_outro[] = {
|
||||
open_door(0x11)
|
||||
hide_object(OBJ_HOVERBIKE)
|
||||
disable_object(OBJ_HOVERBIKE)
|
||||
camera_movement(0x017d)
|
||||
play_cutscene_track(MUSIC_INFILTRATION_OUTRO)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
@@ -2117,7 +2117,7 @@ u8 func0410_intro[] = {
|
||||
remove_chr(0x29)
|
||||
remove_chr(0x2a)
|
||||
remove_chr(0x2b)
|
||||
hide_object(0x2f)
|
||||
disable_object(0x2f)
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
||||
@@ -2330,13 +2330,13 @@ u8 func1013_bunker_lasers[] = {
|
||||
if_difficulty_gt(DIFF_A, /*goto*/ 0x03)
|
||||
|
||||
// Agent - hide lasers
|
||||
hide_object(0x1e)
|
||||
hide_object(0x1f)
|
||||
hide_object(0x20)
|
||||
hide_object(0x21)
|
||||
hide_object(0x22)
|
||||
hide_object(0x23)
|
||||
hide_object(0x24)
|
||||
disable_object(0x1e)
|
||||
disable_object(0x1f)
|
||||
disable_object(0x20)
|
||||
disable_object(0x21)
|
||||
disable_object(0x22)
|
||||
disable_object(0x23)
|
||||
disable_object(0x24)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
// SA and PA
|
||||
@@ -2436,7 +2436,7 @@ u8 func1011_bunker_explosives[] = {
|
||||
unset_object_flag(OBJ_RADAR_TERMINAL, OBJFLAG_INVINCIBLE)
|
||||
yield
|
||||
move_object_to_pad(0x25, 0x036b)
|
||||
hide_object(OBJ_EXPLOSIVE_BRICK)
|
||||
disable_object(OBJ_EXPLOSIVE_BRICK)
|
||||
unset_object_flag(0x25, OBJFLAG_INVINCIBLE)
|
||||
destroy_object(0x25)
|
||||
destroy_object(OBJ_RADAR_TERMINAL)
|
||||
@@ -3142,7 +3142,7 @@ u8 func0423_a5e8[] = {
|
||||
endloop(0x7e) \
|
||||
\
|
||||
label(0x06) \
|
||||
hide_object(laser) \
|
||||
disable_object(laser) \
|
||||
set_ailist(CHR_SELF, AILIST_ACTIVATE_LASERS)
|
||||
|
||||
|
||||
|
||||
+11
-11
@@ -62,7 +62,7 @@ u8 func0c00_017c[] = {
|
||||
|
||||
label(0x59)
|
||||
camera_movement(0x045d)
|
||||
show_object(0x00)
|
||||
enable_object(0x00)
|
||||
set_object_flag2(0x00, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x00, OBJFLAG3_00000010)
|
||||
object_do_animation(0x045e, 0x00, 0x04, 0xffff)
|
||||
@@ -77,9 +77,9 @@ u8 func0c00_017c[] = {
|
||||
endloop(0x08)
|
||||
|
||||
label(0x59)
|
||||
hide_object(0x00)
|
||||
disable_object(0x00)
|
||||
camera_movement(0x0464)
|
||||
show_object(0x01)
|
||||
enable_object(0x01)
|
||||
set_object_flag2(0x01, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x01, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0465, 0x01, 0x04, 0xffff)
|
||||
@@ -94,15 +94,15 @@ u8 func0c00_017c[] = {
|
||||
endloop(0x0b)
|
||||
|
||||
label(0x59)
|
||||
hide_object(0x01)
|
||||
disable_object(0x01)
|
||||
camera_movement(0x0461)
|
||||
|
||||
show_object(0x00)
|
||||
enable_object(0x00)
|
||||
set_object_flag2(0x00, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x00, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0462, 0x00, 0x04, 0xffff)
|
||||
|
||||
show_object(0x01)
|
||||
enable_object(0x01)
|
||||
set_object_flag2(0x01, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x01, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0463, 0x01, 0x04, 0xffff)
|
||||
@@ -117,21 +117,21 @@ u8 func0c00_017c[] = {
|
||||
endloop(0x0a)
|
||||
|
||||
label(0x59)
|
||||
hide_object(0x01)
|
||||
hide_object(0x00)
|
||||
disable_object(0x01)
|
||||
disable_object(0x00)
|
||||
camera_movement(0x046c)
|
||||
|
||||
show_object(0x01)
|
||||
enable_object(0x01)
|
||||
unset_object_flag2(0x01, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x01, OBJFLAG3_00000010)
|
||||
object_do_animation(0x046e, 0x01, 0x04, 0xffff)
|
||||
|
||||
show_object(0x00)
|
||||
enable_object(0x00)
|
||||
set_object_flag2(0x00, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x00, OBJFLAG3_00000010)
|
||||
object_do_animation(0x046d, 0x00, 0x04, 0xffff)
|
||||
|
||||
show_object(0x02)
|
||||
enable_object(0x02)
|
||||
set_object_flag2(0x02, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x02, OBJFLAG3_00000010)
|
||||
object_do_animation(0x046f, 0x02, 0x04, 0xffff)
|
||||
|
||||
@@ -1505,7 +1505,7 @@ u8 func0c01_midcutscene[] = {
|
||||
unset_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_HIDDEN)
|
||||
set_chr_hiddenflag(CHR_DRCAROLL, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x01d7, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_DRCAROLL, 4)
|
||||
show_object(0xbb)
|
||||
enable_object(0xbb)
|
||||
set_object_flag2(0xbb, OBJFLAG2_04000000)
|
||||
set_object_flag3(0xbb, OBJFLAG3_00000010)
|
||||
object_do_animation(0x01d8, 0xbb, 0x04, 0xffff)
|
||||
@@ -1819,7 +1819,7 @@ u8 func0c01_midcutscene[] = {
|
||||
mute_channel(CHANNEL_0)
|
||||
fade_to_color(0xffffffff, 0)
|
||||
fade_to_color(0x00000000, 15)
|
||||
hide_object(0xbb)
|
||||
disable_object(0xbb)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE)
|
||||
@@ -1897,7 +1897,7 @@ u8 func0c02_outro[] = {
|
||||
endloop(loopid) \
|
||||
label(0x2e) \
|
||||
dprint msg, '\n', 0, \
|
||||
show_object(mine) \
|
||||
enable_object(mine) \
|
||||
yield \
|
||||
move_object_to_pad(mine, pad) \
|
||||
yield \
|
||||
@@ -1909,7 +1909,7 @@ u8 func0c02_outro[] = {
|
||||
endloop(loopid) \
|
||||
label(0x2e) \
|
||||
dprint msg1, msg2, '\n', 0, \
|
||||
show_object(mine) \
|
||||
enable_object(mine) \
|
||||
yield \
|
||||
move_object_to_pad(mine, pad) \
|
||||
yield \
|
||||
@@ -2203,7 +2203,7 @@ u8 func1002_intro[] = {
|
||||
goto_next(0x46)
|
||||
|
||||
label(0x45)
|
||||
hide_object(0x07)
|
||||
disable_object(0x07)
|
||||
label(0x46)
|
||||
stop_cutscene_track
|
||||
stop_ambient_track
|
||||
@@ -4695,8 +4695,8 @@ u8 func1433_setup_environment[] = {
|
||||
u8 func1034_enable_blondes[] = {
|
||||
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d)
|
||||
yield
|
||||
hide_chr(CHR_BLONDE1)
|
||||
hide_chr(CHR_BLONDE2)
|
||||
disable_chr(CHR_BLONDE1)
|
||||
disable_chr(CHR_BLONDE2)
|
||||
|
||||
beginloop(0x04)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
@@ -4704,8 +4704,8 @@ u8 func1034_enable_blondes[] = {
|
||||
endloop(0x04)
|
||||
|
||||
label(0x2e)
|
||||
show_chr(CHR_BLONDE1)
|
||||
show_chr(CHR_BLONDE2)
|
||||
enable_chr(CHR_BLONDE1)
|
||||
enable_chr(CHR_BLONDE2)
|
||||
set_ailist(CHR_BLONDE1, AILIST_BLONDE)
|
||||
set_ailist(CHR_BLONDE2, AILIST_BLONDE)
|
||||
label(0x0d)
|
||||
|
||||
+22
-22
@@ -479,7 +479,7 @@ s32 path13[] = {
|
||||
};
|
||||
|
||||
#define chicago_car_do_animation(object, animation) \
|
||||
show_object(object) \
|
||||
enable_object(object) \
|
||||
set_object_flag2(object, OBJFLAG2_04000000) \
|
||||
set_object_flag3(object, OBJFLAG3_00000010) \
|
||||
object_do_animation(animation, object, 0x04, 0xffff)
|
||||
@@ -516,10 +516,10 @@ u8 func0401_3ae8[] = {
|
||||
chicago_wait_for_camera
|
||||
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_CAR1)
|
||||
hide_object(OBJ_CAR2)
|
||||
hide_object(OBJ_CAR3)
|
||||
hide_object(OBJ_CAR4)
|
||||
disable_object(OBJ_CAR1)
|
||||
disable_object(OBJ_CAR2)
|
||||
disable_object(OBJ_CAR3)
|
||||
disable_object(OBJ_CAR4)
|
||||
unset_chr_chrflag(CHR_CIA1, CHRCFLAG_HIDDEN)
|
||||
label(0x00)
|
||||
return
|
||||
@@ -543,10 +543,10 @@ u8 func0402_3bb4[] = {
|
||||
chicago_wait_for_camera
|
||||
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_CAR1)
|
||||
hide_object(OBJ_CAR2)
|
||||
hide_object(OBJ_CAR4)
|
||||
hide_object(OBJ_CAR5)
|
||||
disable_object(OBJ_CAR1)
|
||||
disable_object(OBJ_CAR2)
|
||||
disable_object(OBJ_CAR4)
|
||||
disable_object(OBJ_CAR5)
|
||||
unset_chr_chrflag(CHR_CIA1, CHRCFLAG_HIDDEN)
|
||||
label(0x00)
|
||||
return
|
||||
@@ -557,7 +557,7 @@ u8 func0403_3c74[] = {
|
||||
if_controller_button_pressed(/*goto*/ 0x00)
|
||||
camera_movement(0x00d1)
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
show_object(OBJ_CAR4)
|
||||
enable_object(OBJ_CAR4)
|
||||
set_object_flag2(OBJ_CAR4, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_CAR4, OBJFLAG3_00000010)
|
||||
object_do_animation(0x00de, OBJ_CAR4, 0x04, 0xffff)
|
||||
@@ -570,7 +570,7 @@ u8 func0403_3c74[] = {
|
||||
chicago_wait_for_camera
|
||||
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
hide_object(OBJ_CAR4)
|
||||
disable_object(OBJ_CAR4)
|
||||
unset_chr_chrflag(CHR_CIA1, CHRCFLAG_HIDDEN)
|
||||
label(0x00)
|
||||
return
|
||||
@@ -578,7 +578,7 @@ u8 func0403_3c74[] = {
|
||||
};
|
||||
|
||||
u8 func0404_3ce0[] = {
|
||||
show_object(OBJ_WIREFENCE)
|
||||
enable_object(OBJ_WIREFENCE)
|
||||
set_object_flag2(OBJ_WIREFENCE, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_WIREFENCE, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0470, OBJ_WIREFENCE, 0x01, 0xffff)
|
||||
@@ -2441,9 +2441,9 @@ u8 func1400_give_briefcases[] = {
|
||||
|
||||
// Velvet doesn't exist
|
||||
label(0x03)
|
||||
hide_object(OBJ_BRIEFCASE3)
|
||||
hide_object(OBJ_BRIEFCASE5)
|
||||
hide_object(OBJ_BRIEFCASE6)
|
||||
disable_object(OBJ_BRIEFCASE3)
|
||||
disable_object(OBJ_BRIEFCASE5)
|
||||
disable_object(OBJ_BRIEFCASE6)
|
||||
set_ailist(CHR_SELF, GAILIST_REBUILD_GROUPS)
|
||||
endlist
|
||||
};
|
||||
@@ -2680,12 +2680,12 @@ u8 func040b_outro[] = {
|
||||
set_ailist(CHR_P1P2, GAILIST_IDLE)
|
||||
set_door_open(0x10)
|
||||
set_door_open(0x11)
|
||||
hide_object(OBJ_TAXI)
|
||||
hide_object(OBJ_LIMO)
|
||||
hide_chr(CHR_SEALER1)
|
||||
hide_chr(CHR_SEALER2)
|
||||
hide_chr(CHR_SEALER3)
|
||||
hide_chr(CHR_SEALER4)
|
||||
disable_object(OBJ_TAXI)
|
||||
disable_object(OBJ_LIMO)
|
||||
disable_chr(CHR_SEALER1)
|
||||
disable_chr(CHR_SEALER2)
|
||||
disable_chr(CHR_SEALER3)
|
||||
disable_chr(CHR_SEALER4)
|
||||
|
||||
set_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE)
|
||||
unset_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN)
|
||||
@@ -3117,7 +3117,7 @@ u8 func040d_limo_flags[] = {
|
||||
endloop(0x2d)
|
||||
|
||||
label(0x03)
|
||||
hide_object(OBJ_LIMO)
|
||||
disable_object(OBJ_LIMO)
|
||||
set_object_flag(OBJ_LIMO, OBJFLAG_INVINCIBLE)
|
||||
set_object_flag2(OBJ_LIMO, OBJFLAG2_INVISIBLE)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
+40
-40
@@ -695,21 +695,21 @@ u8 func0402_init_elvis[] = {
|
||||
|
||||
u8 func1006_hijack[] = {
|
||||
yield
|
||||
hide_chr(0x1d)
|
||||
hide_chr(0x1e)
|
||||
hide_chr(0x1f)
|
||||
hide_chr(0x20)
|
||||
hide_chr(0x21)
|
||||
hide_chr(0x22)
|
||||
hide_chr(0x23)
|
||||
hide_chr(0x24)
|
||||
hide_chr(0x25)
|
||||
hide_chr(0x26)
|
||||
hide_chr(0x27)
|
||||
hide_chr(0x28)
|
||||
hide_chr(0x29)
|
||||
hide_chr(CHR_TAKER1)
|
||||
hide_chr(CHR_TAKER2)
|
||||
disable_chr(0x1d)
|
||||
disable_chr(0x1e)
|
||||
disable_chr(0x1f)
|
||||
disable_chr(0x20)
|
||||
disable_chr(0x21)
|
||||
disable_chr(0x22)
|
||||
disable_chr(0x23)
|
||||
disable_chr(0x24)
|
||||
disable_chr(0x25)
|
||||
disable_chr(0x26)
|
||||
disable_chr(0x27)
|
||||
disable_chr(0x28)
|
||||
disable_chr(0x29)
|
||||
disable_chr(CHR_TAKER1)
|
||||
disable_chr(CHR_TAKER2)
|
||||
|
||||
beginloop(0x04)
|
||||
if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06)
|
||||
@@ -779,7 +779,7 @@ u8 func1006_hijack[] = {
|
||||
yield
|
||||
|
||||
#define enable_stripes_chr(chr, function) \
|
||||
show_chr(chr) \
|
||||
enable_chr(chr) \
|
||||
set_ailist(chr, function) \
|
||||
unset_chr_chrflag(chr, CHRCFLAG_HIDDEN) \
|
||||
set_chr_hiddenflag(chr, CHRHFLAG_00400000) \
|
||||
@@ -1069,10 +1069,10 @@ u8 func101e_blow_mines[] = {
|
||||
destroy_object(0x32)
|
||||
|
||||
yield
|
||||
hide_object(0x2f)
|
||||
hide_object(0x30)
|
||||
hide_object(0x31)
|
||||
hide_object(0x32)
|
||||
disable_object(0x2f)
|
||||
disable_object(0x30)
|
||||
disable_object(0x31)
|
||||
disable_object(0x32)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
@@ -1385,8 +1385,8 @@ u8 func0405_president_in_room[] = {
|
||||
set_chr_team(CHR_SELF, TEAM_ALLY)
|
||||
rebuild_teams
|
||||
rebuild_squadrons
|
||||
hide_object(OBJ_EXTERIOR_DOOR)
|
||||
hide_object(OBJ_FLOORHATCH)
|
||||
disable_object(OBJ_EXTERIOR_DOOR)
|
||||
disable_object(OBJ_FLOORHATCH)
|
||||
set_object_flag(OBJ_FLOOR_HATCH_DETACHED, OBJFLAG_00000100)
|
||||
unset_object_flag2(OBJ_FLOOR_HATCH_DETACHED, OBJFLAG2_INVISIBLE)
|
||||
unset_object_flag2(OBJ_EXTERIOR_DOOR_DETACHED, OBJFLAG2_INVISIBLE)
|
||||
@@ -3004,9 +3004,9 @@ u8 func1012_check_blondes_dead[] = {
|
||||
|
||||
u8 func1013_unhide_trent_and_blondes[] = {
|
||||
yield
|
||||
hide_chr(CHR_TRENT)
|
||||
hide_chr(CHR_BLONDE1)
|
||||
hide_chr(CHR_BLONDE2)
|
||||
disable_chr(CHR_TRENT)
|
||||
disable_chr(CHR_BLONDE1)
|
||||
disable_chr(CHR_BLONDE2)
|
||||
|
||||
beginloop(0x04)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
@@ -3018,11 +3018,11 @@ u8 func1013_unhide_trent_and_blondes[] = {
|
||||
endloop(0x04)
|
||||
|
||||
label(0x2d)
|
||||
show_chr(CHR_TRENT)
|
||||
enable_chr(CHR_TRENT)
|
||||
set_ailist(CHR_TRENT, AILIST_TRENT_WAITING)
|
||||
show_chr(CHR_BLONDE1)
|
||||
enable_chr(CHR_BLONDE1)
|
||||
set_ailist(CHR_BLONDE1, AILIST_INIT_BLONDE)
|
||||
show_chr(CHR_BLONDE2)
|
||||
enable_chr(CHR_BLONDE2)
|
||||
set_ailist(CHR_BLONDE2, AILIST_INIT_BLONDE)
|
||||
yield
|
||||
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_HIDDEN)
|
||||
@@ -3454,19 +3454,19 @@ u8 func0423_outro[] = {
|
||||
unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN)
|
||||
set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x02d9, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 4)
|
||||
show_object(0x19)
|
||||
enable_object(0x19)
|
||||
set_object_flag2(0x19, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x19, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02db, 0x19, 0x04, 0xffff)
|
||||
show_object(0x1a)
|
||||
enable_object(0x1a)
|
||||
set_object_flag2(0x1a, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x1a, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02dc, 0x1a, 0x04, 0xffff)
|
||||
show_object(0x23)
|
||||
enable_object(0x23)
|
||||
set_object_flag2(0x23, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x23, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02dd, 0x23, 0x04, 0xffff)
|
||||
show_object(0x37)
|
||||
enable_object(0x37)
|
||||
set_object_flag2(0x37, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x37, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02de, 0x37, 0x04, 0xffff)
|
||||
@@ -3553,8 +3553,8 @@ u8 func0423_outro[] = {
|
||||
label(0x06)
|
||||
stop_cutscene_track
|
||||
configure_environment(0x0000, AIENVCMD_STOPNOSEDIVE, 0)
|
||||
hide_object(0x19)
|
||||
hide_object(0x1a)
|
||||
disable_object(0x19)
|
||||
disable_object(0x1a)
|
||||
set_chr_hudpiece_visible(CHR_TARGET, FALSE)
|
||||
end_level
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -3576,13 +3576,13 @@ u8 func1019_midcutscene[] = {
|
||||
label(0x2d)
|
||||
camera_movement(0x02df)
|
||||
|
||||
show_object(0x19)
|
||||
enable_object(0x19)
|
||||
set_object_flag2(0x19, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x19, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02e0, 0x19, 0x04, 0xffff)
|
||||
object_set_modelpart_visible(0x19, MODELPART_SKSHUTTLE_GANGWAY, TRUE)
|
||||
|
||||
show_object(0x37)
|
||||
enable_object(0x37)
|
||||
set_object_flag2(0x37, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x37, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02e1, 0x37, 0x04, 0xffff)
|
||||
@@ -3602,8 +3602,8 @@ u8 func1019_midcutscene[] = {
|
||||
endloop(0x09)
|
||||
|
||||
label(0x5f)
|
||||
hide_object(0x37)
|
||||
hide_object(0x19)
|
||||
disable_object(0x37)
|
||||
disable_object(0x19)
|
||||
label(0x06)
|
||||
set_stage_flag(STAGEFLAG_MIDCUTSCENE_FINISHED)
|
||||
stop_cutscene_track
|
||||
@@ -3821,7 +3821,7 @@ u8 func101d_handle_early_president_death[] = {
|
||||
endloop(0x04)
|
||||
|
||||
label(0x06)
|
||||
hide_object(OBJ_EXTERIOR_DOOR)
|
||||
disable_object(OBJ_EXTERIOR_DOOR)
|
||||
unset_object_flag2(OBJ_EXTERIOR_DOOR_DETACHED, OBJFLAG2_INVISIBLE)
|
||||
set_object_flag(OBJ_EXTERIOR_DOOR_DETACHED, OBJFLAG_00000100)
|
||||
|
||||
@@ -3993,7 +3993,7 @@ u8 func1026_buddy_floor_hatch[] = {
|
||||
|
||||
// Maybe the AI has difficulty opening the floor hatch so they removed it?
|
||||
label(0x2d)
|
||||
hide_object(OBJ_FLOORHATCH)
|
||||
disable_object(OBJ_FLOORHATCH)
|
||||
set_object_flag(OBJ_FLOOR_HATCH_DETACHED, OBJFLAG_00000100)
|
||||
unset_object_flag2(OBJ_FLOOR_HATCH_DETACHED, OBJFLAG2_INVISIBLE)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
|
||||
@@ -1668,8 +1668,8 @@ u8 func100e_break_glass[] = {
|
||||
endloop(0x04)
|
||||
|
||||
label(0x0d)
|
||||
hide_object(0x4f)
|
||||
hide_object(0x50)
|
||||
disable_object(0x4f)
|
||||
disable_object(0x50)
|
||||
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
||||
endlist
|
||||
};
|
||||
|
||||
+29
-29
@@ -970,7 +970,7 @@ u8 func1001_objectives_failed_msg[] = {
|
||||
set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG)
|
||||
|
||||
label(0x2d)
|
||||
hide_object(OBJ_TARGETAMP_COOP)
|
||||
disable_object(OBJ_TARGETAMP_COOP)
|
||||
set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG)
|
||||
endlist
|
||||
};
|
||||
@@ -2686,7 +2686,7 @@ u8 func0c00_intro[] = {
|
||||
if_controller_button_pressed(/*goto*/ 0x86)
|
||||
camera_movement(0x02f9)
|
||||
|
||||
show_object(0x36)
|
||||
enable_object(0x36)
|
||||
set_object_flag2(0x36, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x36, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02fa, 0x36, 0x01, 0xffff)
|
||||
@@ -2702,7 +2702,7 @@ u8 func0c00_intro[] = {
|
||||
endloop(0x0e)
|
||||
|
||||
label(0x86)
|
||||
hide_object(0x36)
|
||||
disable_object(0x36)
|
||||
if_controller_button_pressed(/*goto*/ 0x86)
|
||||
camera_movement(0x02fb)
|
||||
|
||||
@@ -2755,7 +2755,7 @@ u8 func0c00_intro[] = {
|
||||
cmd0175(60)
|
||||
if_controller_button_pressed(/*goto*/ 0x86)
|
||||
|
||||
show_object(0x36)
|
||||
enable_object(0x36)
|
||||
set_object_flag2(0x36, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x36, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0302, 0x36, 0x04, 0xffff)
|
||||
@@ -2782,7 +2782,7 @@ u8 func0c00_intro[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
||||
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x0303, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 2)
|
||||
hide_object(0x36)
|
||||
disable_object(0x36)
|
||||
remove_chr(0x37)
|
||||
remove_chr(0x38)
|
||||
remove_chr(0x39)
|
||||
@@ -2806,10 +2806,10 @@ u8 func0c00_intro[] = {
|
||||
|
||||
u8 func0414_outro_from_menu[] = {
|
||||
set_ailist(CHR_ELVIS, GAILIST_IDLE)
|
||||
hide_object(OBJ_SPIKE_ML)
|
||||
hide_object(OBJ_SPIKE_MR)
|
||||
hide_object(OBJ_SPIKE_BL)
|
||||
hide_object(OBJ_SPIKE_BR)
|
||||
disable_object(OBJ_SPIKE_ML)
|
||||
disable_object(OBJ_SPIKE_MR)
|
||||
disable_object(OBJ_SPIKE_BL)
|
||||
disable_object(OBJ_SPIKE_BR)
|
||||
set_ailist(CHR_SELF, AILIST_OUTRO)
|
||||
endlist
|
||||
};
|
||||
@@ -2894,31 +2894,31 @@ u8 func0414_outro[] = {
|
||||
|
||||
object_do_animation(0x0452, OBJ_SPIKE_T, 0x04, 0xffff)
|
||||
|
||||
show_object(0x37)
|
||||
enable_object(0x37)
|
||||
set_object_flag2(0x37, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x37, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0453, 0x37, 0x04, 0xffff)
|
||||
|
||||
show_object(0x38)
|
||||
enable_object(0x38)
|
||||
set_object_flag2(0x38, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x38, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0454, 0x38, 0x04, 0xffff)
|
||||
|
||||
show_object(0x39)
|
||||
enable_object(0x39)
|
||||
set_object_flag2(0x39, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x39, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0455, 0x39, 0x04, 0xffff)
|
||||
|
||||
show_object(0x3a)
|
||||
enable_object(0x3a)
|
||||
set_object_flag2(0x3a, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x3a, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0456, 0x3a, 0x04, 0xffff)
|
||||
|
||||
show_object(0x3b)
|
||||
enable_object(0x3b)
|
||||
set_object_flag2(0x3b, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x3b, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0457, 0x3b, 0x04, 0xffff)
|
||||
show_object(0x3c)
|
||||
enable_object(0x3c)
|
||||
|
||||
set_object_flag2(0x3c, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x3c, OBJFLAG3_00000010)
|
||||
@@ -2934,7 +2934,7 @@ u8 func0414_outro[] = {
|
||||
endloop(0x09)
|
||||
|
||||
label(0x86)
|
||||
hide_object(0x3c)
|
||||
disable_object(0x3c)
|
||||
camera_movement(0x02c7)
|
||||
|
||||
set_chr_chrflag(CHR_TARGET, CHRCFLAG_UNPLAYABLE)
|
||||
@@ -2947,22 +2947,22 @@ u8 func0414_outro[] = {
|
||||
set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000)
|
||||
chr_do_animation(0x02c9, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 4)
|
||||
|
||||
show_object(0x23)
|
||||
enable_object(0x23)
|
||||
set_object_flag2(0x23, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x23, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02ca, 0x23, 0x04, 0xffff)
|
||||
|
||||
show_object(0x24)
|
||||
enable_object(0x24)
|
||||
set_object_flag2(0x24, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x24, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02cb, 0x24, 0x04, 0xffff)
|
||||
|
||||
show_object(0x25)
|
||||
enable_object(0x25)
|
||||
set_object_flag2(0x25, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x25, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02cc, 0x25, 0x04, 0xffff)
|
||||
|
||||
show_object(0x26)
|
||||
enable_object(0x26)
|
||||
set_object_flag2(0x26, OBJFLAG2_04000000)
|
||||
set_object_flag3(0x26, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02cd, 0x26, 0x04, 0xffff)
|
||||
@@ -2980,10 +2980,10 @@ u8 func0414_outro[] = {
|
||||
unset_chr_chrflag(CHR_BOND, CHRCFLAG_KILLCOUNTABLE)
|
||||
unset_chr_chrflag(CHR_COOP, CHRCFLAG_KILLCOUNTABLE)
|
||||
unset_stage_flag(STAGEFLAG_IN_OUTRO)
|
||||
hide_object(0x23)
|
||||
hide_object(0x24)
|
||||
hide_object(0x25)
|
||||
hide_object(0x26)
|
||||
disable_object(0x23)
|
||||
disable_object(0x24)
|
||||
disable_object(0x25)
|
||||
disable_object(0x26)
|
||||
label(0x06)
|
||||
stop_cutscene_track
|
||||
stop_ambient_track
|
||||
@@ -3182,8 +3182,8 @@ u8 func101d_remove_pillar_shadow[] = {
|
||||
|
||||
// Destroyed - remove shadow
|
||||
label(0x06)
|
||||
hide_object(0x3d)
|
||||
hide_object(0x3e)
|
||||
disable_object(0x3d)
|
||||
disable_object(0x3e)
|
||||
unset_object_flag2(0x4e, OBJFLAG2_INVISIBLE)
|
||||
unset_object_flag2(0x4f, OBJFLAG2_INVISIBLE)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
@@ -3614,7 +3614,7 @@ u8 func1021_handle_mine[] = {
|
||||
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d)
|
||||
|
||||
// SA and PA
|
||||
hide_object(OBJ_REMOTEMINE)
|
||||
disable_object(OBJ_REMOTEMINE)
|
||||
|
||||
// A
|
||||
label(0x2d)
|
||||
@@ -3930,8 +3930,8 @@ u8 func1028_buddybridge[] = {
|
||||
// Flag not set - so this is solo mode
|
||||
// Remove the bridge and barricade over the first ravine
|
||||
label(0x2d)
|
||||
hide_object(OBJ_BUDDYBRIDGE)
|
||||
hide_object(OBJ_BUDDYBARRICADE)
|
||||
disable_object(OBJ_BUDDYBRIDGE)
|
||||
disable_object(OBJ_BUDDYBARRICADE)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
|
||||
+21
-21
@@ -1889,7 +1889,7 @@ u8 func100b_check_jonathan_dead[] = {
|
||||
goto_next(0x04)
|
||||
|
||||
label(0x32)
|
||||
hide_object(OBJ_MEDPACK_COOP)
|
||||
disable_object(OBJ_MEDPACK_COOP)
|
||||
|
||||
// All difficulties
|
||||
beginloop(0x04)
|
||||
@@ -2317,16 +2317,16 @@ u8 func1016_enable_guards_after_meetup[] = {
|
||||
endloop(0x04)
|
||||
|
||||
label(0x06)
|
||||
show_chr(0x0d)
|
||||
show_chr(0x0e)
|
||||
show_chr(0x0f)
|
||||
show_chr(0x10)
|
||||
show_chr(0x11)
|
||||
show_chr(0x12)
|
||||
show_chr(0x13)
|
||||
show_chr(0x14)
|
||||
show_chr(0x15)
|
||||
show_chr(0x16)
|
||||
enable_chr(0x0d)
|
||||
enable_chr(0x0e)
|
||||
enable_chr(0x0f)
|
||||
enable_chr(0x10)
|
||||
enable_chr(0x11)
|
||||
enable_chr(0x12)
|
||||
enable_chr(0x13)
|
||||
enable_chr(0x14)
|
||||
enable_chr(0x15)
|
||||
enable_chr(0x16)
|
||||
unset_chr_chrflag(0x0d, CHRCFLAG_HIDDEN)
|
||||
unset_chr_chrflag(0x0d, CHRCFLAG_INVINCIBLE)
|
||||
set_ailist(0x0d, AILIST_INIT_SUPERDRAGON_GUARD)
|
||||
@@ -2803,7 +2803,7 @@ u8 func0c01_midcutscene[] = {
|
||||
play_cutscene_track(MUSIC_ESCAPE_MIDCUTSCENE)
|
||||
camera_movement(0x01cb)
|
||||
cmd0175(60)
|
||||
hide_object(OBJ_HOVERBED)
|
||||
disable_object(OBJ_HOVERBED)
|
||||
set_target_chr(CHR_BOND)
|
||||
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x33)
|
||||
if_chr_dead(CHR_BOND, /*goto*/ 0x33)
|
||||
@@ -3019,9 +3019,9 @@ u8 func0c02_outro[] = {
|
||||
play_cutscene_track(MUSIC_ESCAPE_OUTRO_LONG)
|
||||
camera_movement(0x02d2)
|
||||
label(0x32)
|
||||
hide_object(OBJ_UFO2)
|
||||
disable_object(OBJ_UFO2)
|
||||
|
||||
show_object(OBJ_UFO1)
|
||||
enable_object(OBJ_UFO1)
|
||||
set_object_flag2(OBJ_UFO1, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_UFO1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02d3, OBJ_UFO1, 0x04, 0xffff)
|
||||
@@ -3046,7 +3046,7 @@ u8 func0c02_outro[] = {
|
||||
label(0x32)
|
||||
camera_movement(0x02d4)
|
||||
|
||||
show_object(OBJ_UFO1)
|
||||
enable_object(OBJ_UFO1)
|
||||
set_object_flag2(OBJ_UFO1, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_UFO1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02d5, OBJ_UFO1, 0x04, 0xffff)
|
||||
@@ -3070,7 +3070,7 @@ u8 func0c02_outro[] = {
|
||||
|
||||
label(0x69)
|
||||
label(0x06)
|
||||
hide_object(OBJ_UFO2)
|
||||
disable_object(OBJ_UFO2)
|
||||
if_stage_flag_eq(STAGEFLAG_JO_DOING_TERMINALS, FALSE, /*goto*/ 0x32)
|
||||
stop_cutscene_track
|
||||
stop_ambient_track
|
||||
@@ -3103,8 +3103,8 @@ u8 func0c02_outro[] = {
|
||||
*/
|
||||
u8 func0415_ufo_exit[] = {
|
||||
configure_environment(0x0000, AIENVCMD_PLAYUFOHUM, 5)
|
||||
hide_object(OBJ_UFO2)
|
||||
show_object(OBJ_UFO1)
|
||||
disable_object(OBJ_UFO2)
|
||||
enable_object(OBJ_UFO1)
|
||||
set_object_flag2(OBJ_UFO1, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_UFO1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02d3, OBJ_UFO1, 0x04, 0xffff)
|
||||
@@ -3124,7 +3124,7 @@ u8 func0415_ufo_exit[] = {
|
||||
label(0x06)
|
||||
configure_environment(0x0000, AIENVCMD_STOPUFOHUM, 0)
|
||||
stop_ambient_track
|
||||
hide_object(OBJ_UFO1)
|
||||
disable_object(OBJ_UFO1)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
@@ -3167,7 +3167,7 @@ u8 func1021_jo_escaping[] = {
|
||||
set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN)
|
||||
set_ailist(CHR_P1P2, GAILIST_IDLE)
|
||||
|
||||
show_object(OBJ_UFO1)
|
||||
enable_object(OBJ_UFO1)
|
||||
set_object_flag2(OBJ_UFO1, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_UFO1, OBJFLAG3_00000010)
|
||||
object_do_animation(0x02d5, OBJ_UFO1, 0x04, 0xffff)
|
||||
@@ -3522,7 +3522,7 @@ u8 unregistered_function8[] = {
|
||||
};
|
||||
|
||||
u8 func1026_ufo_spinning[] = {
|
||||
show_object(OBJ_UFO2)
|
||||
enable_object(OBJ_UFO2)
|
||||
set_object_flag2(OBJ_UFO2, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_UFO2, OBJFLAG3_00000010)
|
||||
|
||||
|
||||
+48
-48
@@ -1653,8 +1653,8 @@ u8 func1007_bomb_logic[] = {
|
||||
show_hudmsg(CHR_BOND, L_WAX_022) // "Skedar bomb has been placed successfully."
|
||||
remove_weapon_from_inventory(WEAPON_SKEDARBOMB)
|
||||
set_stage_flag(STAGEFLAG_BOMB_PLANTED)
|
||||
hide_object(OBJ_BOND_BOMB)
|
||||
hide_object(OBJ_COOP_BOMB)
|
||||
disable_object(OBJ_BOND_BOMB)
|
||||
disable_object(OBJ_COOP_BOMB)
|
||||
assign_sound(SFX_8144, CHANNEL_1)
|
||||
play_sound_from_object(CHANNEL_1, OBJ_PLANTED_BOMB, 0x0258, 0x04b0)
|
||||
unset_object_flag2(OBJ_PLANTED_BOMB, OBJFLAG2_INVISIBLE)
|
||||
@@ -1759,26 +1759,26 @@ u8 func1008_check_bomb_unplantable[] = {
|
||||
};
|
||||
|
||||
u8 func1009_toggle_top_guards[] = {
|
||||
hide_chr(0x00)
|
||||
hide_chr(0x0b)
|
||||
hide_chr(0x09)
|
||||
hide_chr(0x1e)
|
||||
hide_chr(0x1f)
|
||||
hide_chr(0x20)
|
||||
hide_chr(0x07)
|
||||
hide_chr(0x0a)
|
||||
hide_chr(0x0c)
|
||||
hide_chr(0x18)
|
||||
hide_chr(0x19)
|
||||
hide_chr(0x1a)
|
||||
hide_chr(0x1b)
|
||||
hide_chr(0x1c)
|
||||
hide_chr(0x1d)
|
||||
hide_chr(0x08)
|
||||
hide_chr(0x0d)
|
||||
hide_chr(0x17)
|
||||
hide_chr(0x06)
|
||||
hide_chr(0x05)
|
||||
disable_chr(0x00)
|
||||
disable_chr(0x0b)
|
||||
disable_chr(0x09)
|
||||
disable_chr(0x1e)
|
||||
disable_chr(0x1f)
|
||||
disable_chr(0x20)
|
||||
disable_chr(0x07)
|
||||
disable_chr(0x0a)
|
||||
disable_chr(0x0c)
|
||||
disable_chr(0x18)
|
||||
disable_chr(0x19)
|
||||
disable_chr(0x1a)
|
||||
disable_chr(0x1b)
|
||||
disable_chr(0x1c)
|
||||
disable_chr(0x1d)
|
||||
disable_chr(0x08)
|
||||
disable_chr(0x0d)
|
||||
disable_chr(0x17)
|
||||
disable_chr(0x06)
|
||||
disable_chr(0x05)
|
||||
|
||||
// Wait until player above -4100
|
||||
beginloop(0x04)
|
||||
@@ -1790,45 +1790,45 @@ u8 func1009_toggle_top_guards[] = {
|
||||
|
||||
// Show chrs
|
||||
label(0x06)
|
||||
show_chr(0x00)
|
||||
enable_chr(0x00)
|
||||
yield
|
||||
show_chr(0x0b)
|
||||
enable_chr(0x0b)
|
||||
yield
|
||||
show_chr(0x09)
|
||||
enable_chr(0x09)
|
||||
yield
|
||||
show_chr(0x1e)
|
||||
enable_chr(0x1e)
|
||||
yield
|
||||
show_chr(0x1f)
|
||||
enable_chr(0x1f)
|
||||
yield
|
||||
show_chr(0x20)
|
||||
enable_chr(0x20)
|
||||
yield
|
||||
show_chr(0x07)
|
||||
enable_chr(0x07)
|
||||
yield
|
||||
show_chr(0x0a)
|
||||
enable_chr(0x0a)
|
||||
yield
|
||||
show_chr(0x0c)
|
||||
enable_chr(0x0c)
|
||||
yield
|
||||
show_chr(0x18)
|
||||
enable_chr(0x18)
|
||||
yield
|
||||
show_chr(0x19)
|
||||
enable_chr(0x19)
|
||||
yield
|
||||
show_chr(0x1a)
|
||||
enable_chr(0x1a)
|
||||
yield
|
||||
show_chr(0x1b)
|
||||
enable_chr(0x1b)
|
||||
yield
|
||||
show_chr(0x1c)
|
||||
enable_chr(0x1c)
|
||||
yield
|
||||
show_chr(0x1d)
|
||||
enable_chr(0x1d)
|
||||
yield
|
||||
show_chr(0x08)
|
||||
enable_chr(0x08)
|
||||
yield
|
||||
show_chr(0x0d)
|
||||
enable_chr(0x0d)
|
||||
yield
|
||||
show_chr(0x17)
|
||||
enable_chr(0x17)
|
||||
yield
|
||||
show_chr(0x06)
|
||||
enable_chr(0x06)
|
||||
yield
|
||||
show_chr(0x05)
|
||||
enable_chr(0x05)
|
||||
set_ailist(CHR_SELF, GAILIST_IDLE)
|
||||
endlist
|
||||
};
|
||||
@@ -1992,8 +1992,8 @@ u8 func0416_intro[] = {
|
||||
|
||||
// Controller button pressed or cutscene finished
|
||||
label(0xba)
|
||||
hide_object(OBJ_LOBBYDOOR_LEFT)
|
||||
hide_object(OBJ_LOBBYDOOR_RIGHT)
|
||||
disable_object(OBJ_LOBBYDOOR_LEFT)
|
||||
disable_object(OBJ_LOBBYDOOR_RIGHT)
|
||||
unset_object_flag2(0x61, OBJFLAG2_INVISIBLE)
|
||||
unset_object_flag2(0x62, OBJFLAG2_INVISIBLE)
|
||||
set_object_flag(0x61, OBJFLAG_00000100)
|
||||
@@ -2013,7 +2013,7 @@ u8 func0416_intro[] = {
|
||||
|
||||
u8 func0417_outro[] = {
|
||||
set_invincible(CHR_BOND)
|
||||
hide_object(OBJ_SHUTTLE1)
|
||||
disable_object(OBJ_SHUTTLE1)
|
||||
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
||||
play_cutscene_track(MUSIC_G5_OUTRO)
|
||||
@@ -2023,7 +2023,7 @@ u8 func0417_outro[] = {
|
||||
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_CASS, CHRCFLAG_HIDDEN)
|
||||
set_chr_chrflag(CHR_CASS, CHRCFLAG_INVINCIBLE)
|
||||
show_object(OBJ_SHUTTLE2)
|
||||
enable_object(OBJ_SHUTTLE2)
|
||||
set_object_flag2(OBJ_SHUTTLE2, OBJFLAG2_04000000)
|
||||
set_object_flag3(OBJ_SHUTTLE2, OBJFLAG3_00000010)
|
||||
object_do_animation(0x0475, OBJ_SHUTTLE2, 0x04, 0xffff)
|
||||
@@ -2040,7 +2040,7 @@ u8 func0417_outro[] = {
|
||||
endloop(0x08)
|
||||
|
||||
label(0xba)
|
||||
hide_object(OBJ_SHUTTLE2)
|
||||
disable_object(OBJ_SHUTTLE2)
|
||||
|
||||
label(0x06)
|
||||
end_level
|
||||
@@ -2118,7 +2118,7 @@ u8 func1010_init_lighting[] = {
|
||||
|
||||
u8 func1011_shuttle_animation[] = {
|
||||
yield
|
||||
show_object(OBJ_SHUTTLE1)
|
||||
enable_object(OBJ_SHUTTLE1)
|
||||
set_object_flag3(OBJ_SHUTTLE1, OBJFLAG3_00000010)
|
||||
object_set_modelpart_visible(OBJ_SHUTTLE1, MODELPART_SKSHUTTLE_GANGWAY, FALSE)
|
||||
label(0x09)
|
||||
|
||||
+8
-8
@@ -135,7 +135,7 @@ u32 g_PortalMode = 0x00000000;
|
||||
u32 var8007fcb0 = 0x00000190;
|
||||
f32 var8007fcb4 = 0;
|
||||
|
||||
void roomMovePropsToList1(u32 roomnum, bool tintedglassonly)
|
||||
void roomUnpauseProps(u32 roomnum, bool tintedglassonly)
|
||||
{
|
||||
struct prop *prop;
|
||||
struct defaultobj *obj;
|
||||
@@ -153,7 +153,7 @@ void roomMovePropsToList1(u32 roomnum, bool tintedglassonly)
|
||||
while (*propnumptr >= 0) {
|
||||
prop = &g_Vars.props[*propnumptr];
|
||||
|
||||
if (!prop->inlist1) {
|
||||
if (!prop->active) {
|
||||
if (tintedglassonly) {
|
||||
/**
|
||||
* @bug: A missing prop->type check means this is inadvertently
|
||||
@@ -163,10 +163,10 @@ void roomMovePropsToList1(u32 roomnum, bool tintedglassonly)
|
||||
obj = prop->obj;
|
||||
|
||||
if (obj->type == OBJTYPE_TINTEDGLASS) {
|
||||
propMoveFromList2To1(prop);
|
||||
propUnpause(prop);
|
||||
}
|
||||
} else {
|
||||
propMoveFromList2To1(prop);
|
||||
propUnpause(prop);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ void func0f157e94(s32 roomnum, s32 arg1, struct screenbox *box)
|
||||
var8007fc2c = var8007fc30;
|
||||
}
|
||||
|
||||
roomMovePropsToList1(roomnum, false);
|
||||
roomUnpauseProps(roomnum, false);
|
||||
|
||||
if (g_Rooms[roomnum].unk02 == 0 && var8007fc10 > 0) {
|
||||
var8007fc10--;
|
||||
@@ -16143,7 +16143,7 @@ glabel func0f162d9c
|
||||
/* f1630d0: a6180000 */ sh $t8,0x0($s0)
|
||||
/* f1630d4: 00d98821 */ addu $s1,$a2,$t9
|
||||
/* f1630d8: a6320000 */ sh $s2,0x0($s1)
|
||||
/* f1630dc: 0fc55f6c */ jal roomMovePropsToList1
|
||||
/* f1630dc: 0fc55f6c */ jal roomUnpauseProps
|
||||
/* f1630e0: 02402025 */ or $a0,$s2,$zero
|
||||
/* f1630e4: 8ea80000 */ lw $t0,0x0($s5)
|
||||
/* f1630e8: c7a40088 */ lwc1 $f4,0x88($sp)
|
||||
@@ -16708,7 +16708,7 @@ glabel func0f16397c
|
||||
/* f163a64: 25ae0001 */ addiu $t6,$t5,0x1
|
||||
/* f163a68: ae0e0000 */ sw $t6,0x0($s0)
|
||||
.L0f163a6c:
|
||||
/* f163a6c: 0fc55f6c */ jal roomMovePropsToList1
|
||||
/* f163a6c: 0fc55f6c */ jal roomUnpauseProps
|
||||
/* f163a70: afab003c */ sw $t3,0x3c($sp)
|
||||
/* f163a74: 8eea0000 */ lw $t2,0x0($s7)
|
||||
/* f163a78: 8fab003c */ lw $t3,0x3c($sp)
|
||||
@@ -16806,7 +16806,7 @@ glabel func0f16397c
|
||||
/* f163bd4: 25f80001 */ addiu $t8,$t7,0x1
|
||||
/* f163bd8: ae180000 */ sw $t8,0x0($s0)
|
||||
.L0f163bdc:
|
||||
/* f163bdc: 0fc55f6c */ jal roomMovePropsToList1
|
||||
/* f163bdc: 0fc55f6c */ jal roomUnpauseProps
|
||||
/* f163be0: afac0048 */ sw $t4,0x48($sp)
|
||||
/* f163be4: 8eea0000 */ lw $t2,0x0($s7)
|
||||
/* f163be8: 8fac0048 */ lw $t4,0x48($sp)
|
||||
|
||||
+6
-6
@@ -122,11 +122,11 @@ void propsTick2(void)
|
||||
func0f02c9b0();
|
||||
func0f048398();
|
||||
|
||||
prop = g_Vars.list1head;
|
||||
prop = g_Vars.activeprops;
|
||||
|
||||
do {
|
||||
next = prop->next;
|
||||
done = next == g_Vars.list2head;
|
||||
done = next == g_Vars.pausedprops;
|
||||
tickop = TICKOP_NONE;
|
||||
|
||||
if (prop->type == PROPTYPE_CHR) {
|
||||
@@ -145,11 +145,11 @@ void propsTick2(void)
|
||||
next2 = next;
|
||||
} else {
|
||||
next2 = prop->next;
|
||||
done = next2 == g_Vars.list2head;
|
||||
done = next2 == g_Vars.pausedprops;
|
||||
|
||||
if (tickop == TICKOP_RETICK) {
|
||||
propRemoveFromCurrentList(prop);
|
||||
propAppendToList1(prop);
|
||||
propDelist(prop);
|
||||
propActivateThisFrame(prop);
|
||||
|
||||
if (done) {
|
||||
next2 = prop;
|
||||
@@ -11954,7 +11954,7 @@ glabel var7f1a87f8
|
||||
*/
|
||||
void chrRenderAttachedObject(struct prop *prop, struct modelrenderdata *renderdata, bool withalpha, struct chrdata *chr)
|
||||
{
|
||||
if (prop->flags & PROPFLAG_02) {
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
u32 stack;
|
||||
struct defaultobj *obj = prop->obj;
|
||||
struct model *model = obj->model;
|
||||
|
||||
+11
-11
@@ -6566,7 +6566,7 @@ bool chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 flags)
|
||||
|
||||
if ((!isgopos || ismagic)
|
||||
&& g_Vars.normmplayerisrunning == false
|
||||
&& (prop->flags & (PROPFLAG_80 | PROPFLAG_40 | PROPFLAG_02)) == 0
|
||||
&& (prop->flags & (PROPFLAG_80 | PROPFLAG_40 | PROPFLAG_ONSCREEN)) == 0
|
||||
&& func0f036c08(chr, &curwppos, curwprooms)
|
||||
&& chr->inlift == false) {
|
||||
chrGoPosInitMagic(chr, &chr->act_gopos.waydata, &curwppos, &prevpos);
|
||||
@@ -6988,7 +6988,7 @@ glabel var7f1a8dd0
|
||||
// chrPatrolGetCurWaypointInfo(chr, &nextpos, nextrooms);
|
||||
//
|
||||
// if (!g_Vars.normmplayerisrunning
|
||||
// && (chr->prop->flags & (PROPFLAG_02 | PROPFLAG_40 | PROPFLAG_80)) == 0
|
||||
// && (chr->prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) == 0
|
||||
// && func0f036c08(chr, &nextpos, nextrooms)
|
||||
// && !chr->inlift) {
|
||||
// chrGoPosInitMagic(chr, &chr->act_patrol.waydata, &nextpos, &prop->pos);
|
||||
@@ -9536,7 +9536,7 @@ void chrAlertOthersOfInjury(struct chrdata *chr, bool dying)
|
||||
for (; index < numchrs && numinrange < 7; index++) {
|
||||
struct chrdata *loopchr = &g_ChrSlots[index];
|
||||
|
||||
if (loopchr->model && loopchr->prop && (loopchr->prop->flags & PROPFLAG_TANGIBLE)) {
|
||||
if (loopchr->model && loopchr->prop && (loopchr->prop->flags & PROPFLAG_ENABLED)) {
|
||||
f32 xdiff = loopchr->prop->pos.x - chr->prop->pos.x;
|
||||
f32 ydiff = loopchr->prop->pos.y - chr->prop->pos.y;
|
||||
f32 zdiff = loopchr->prop->pos.z - chr->prop->pos.z;
|
||||
@@ -11800,7 +11800,7 @@ void chrSetFiring(struct chrdata *chr, s32 hand, bool firing)
|
||||
{
|
||||
struct prop *prop = chrGetEquippedWeaponProp(chr, hand);
|
||||
|
||||
chr->prop->unk3f_02 = firing ? 1 : 0;
|
||||
chr->prop->forcetick = firing ? true : false;
|
||||
|
||||
if (prop) {
|
||||
weaponSetGunfireVisible(prop, firing, chr->prop->rooms[0]);
|
||||
@@ -12056,7 +12056,7 @@ bool func0f03fde4(struct chrdata *chr, s32 handnum, struct coord *arg2)
|
||||
obj = weaponprop->obj;
|
||||
model = obj->model;
|
||||
|
||||
if ((chr->prop->flags & PROPFLAG_02) && (weaponprop->flags & PROPFLAG_02)) {
|
||||
if ((chr->prop->flags & PROPFLAG_ONSCREEN) && (weaponprop->flags & PROPFLAG_ONSCREEN)) {
|
||||
if ((part0 = modelGetPart(model->filedata, MODELPART_0000))) {
|
||||
spac = func0001a5cc(model, part0, 0);
|
||||
rodata = &part0->rodata->gunfire;
|
||||
@@ -12124,7 +12124,7 @@ void chrCalculateShieldHit(struct chrdata *chr, struct coord *pos, struct coord
|
||||
u32 stack3;
|
||||
|
||||
if (prop->type != PROPTYPE_PLAYER || g_Vars.normmplayerisrunning || chrGetShield(chr) > 0) {
|
||||
if (prop->flags & (PROPFLAG_02 | PROPFLAG_40 | PROPFLAG_80)) {
|
||||
if (prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) {
|
||||
bestnode = NULL;
|
||||
bestvolume = MAXFLOAT;
|
||||
lVar4 = func0f0b5050(chr->model->matrices);
|
||||
@@ -22621,7 +22621,7 @@ void chrTickGoPos(struct chrdata *chr)
|
||||
|
||||
// Check if chr needs to exit magic mode
|
||||
if (chr->act_gopos.waydata.mode == WAYMODE_MAGIC) {
|
||||
if ((!enteringmagic && ((prop->flags & (PROPFLAG_80 | PROPFLAG_40 | PROPFLAG_02)) || !func0f036c08(chr, &curwppos, curwprooms)))
|
||||
if ((!enteringmagic && ((prop->flags & (PROPFLAG_80 | PROPFLAG_40 | PROPFLAG_ONSCREEN)) || !func0f036c08(chr, &curwppos, curwprooms)))
|
||||
|| (curwpflags & (PADFLAG_AIWAITLIFT | PADFLAG_AIONLIFT))
|
||||
|| chr->inlift) {
|
||||
// Exiting magic mode
|
||||
@@ -22866,7 +22866,7 @@ void chrTickPatrol(struct chrdata *chr)
|
||||
}
|
||||
|
||||
if (chr->act_patrol.waydata.mode == WAYMODE_MAGIC) {
|
||||
if ((!enteringmagic && ((prop->flags & (PROPFLAG_02 | PROPFLAG_40 | PROPFLAG_80)) || !func0f036c08(chr, &sp58, sp48)))
|
||||
if ((!enteringmagic && ((prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) || !func0f036c08(chr, &sp58, sp48)))
|
||||
|| (flags & (PADFLAG_AIWAITLIFT | PADFLAG_AIONLIFT))
|
||||
|| chr->inlift) {
|
||||
// Exit magic for lifts
|
||||
@@ -23208,7 +23208,7 @@ void func0f0482cc(u32 ailistid)
|
||||
g_CutsceneSkipRequested = false;
|
||||
g_CutsceneCurTotalFrame60f = 0;
|
||||
|
||||
prop = g_Vars.list1head;
|
||||
prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
prop->lastupdateframe = 0xffff;
|
||||
@@ -26185,8 +26185,8 @@ struct prop *chrSpawnAtCoord(s32 bodynum, s32 headnum, struct coord *pos, s16 *r
|
||||
prop = propAllocateChr(model, &pos2, rooms2, angle, ailist);
|
||||
|
||||
if (prop) {
|
||||
propAppendToList1(prop);
|
||||
propShow(prop);
|
||||
propActivateThisFrame(prop);
|
||||
propEnable(prop);
|
||||
|
||||
chr = prop->chr;
|
||||
chr->headnum = headnum;
|
||||
|
||||
@@ -286,10 +286,10 @@ bool (*g_CommandPointers[])(void) = {
|
||||
/*0x0111*/ aiSetCameraAnimation,
|
||||
/*0x0112*/ aiObjectDoAnimation,
|
||||
/*0x0113*/ aiIfInCutscene,
|
||||
/*0x0114*/ aiShowChr,
|
||||
/*0x0115*/ aiHideChr,
|
||||
/*0x0116*/ aiShowObj,
|
||||
/*0x0117*/ aiHideObj,
|
||||
/*0x0114*/ aiEnableChr,
|
||||
/*0x0115*/ aiDisableChr,
|
||||
/*0x0116*/ aiEnableObj,
|
||||
/*0x0117*/ aiDisableObj,
|
||||
/*0x0118*/ aiSetObjFlag3,
|
||||
/*0x0119*/ aiUnsetObjFlag3,
|
||||
/*0x011a*/ aiIfObjHasFlag3,
|
||||
|
||||
@@ -2367,7 +2367,7 @@ bool aiGiveObjectToChr(void)
|
||||
if (obj->prop->parent) {
|
||||
objDetach(obj->prop);
|
||||
func0f06ac90(obj->prop);
|
||||
propPrependToList1(obj->prop);
|
||||
propActivate(obj->prop);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2381,8 +2381,8 @@ bool aiGiveObjectToChr(void)
|
||||
objDetach(obj->prop);
|
||||
} else {
|
||||
func0f065c44(obj->prop);
|
||||
propRemoveFromCurrentList(obj->prop);
|
||||
propHide(obj->prop);
|
||||
propDelist(obj->prop);
|
||||
propDisable(obj->prop);
|
||||
}
|
||||
|
||||
if (obj->type != OBJTYPE_WEAPON || chrEquipWeapon((struct weaponobj *) obj, chr) == 0) {
|
||||
@@ -5429,14 +5429,14 @@ bool aiObjectDoAnimation(void)
|
||||
/**
|
||||
* @cmd 0114
|
||||
*/
|
||||
bool aiShowChr(void)
|
||||
bool aiEnableChr(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
struct chrdata *chr = chrFindById(g_Vars.chrdata, cmd[2]);
|
||||
|
||||
if (chr && chr->prop && chr->model) {
|
||||
propPrependToList1(chr->prop);
|
||||
propShow(chr->prop);
|
||||
propActivate(chr->prop);
|
||||
propEnable(chr->prop);
|
||||
func0f0220ac(chr);
|
||||
}
|
||||
|
||||
@@ -5448,15 +5448,15 @@ bool aiShowChr(void)
|
||||
/**
|
||||
* @cmd 0115
|
||||
*/
|
||||
bool aiHideChr(void)
|
||||
bool aiDisableChr(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
struct chrdata *chr = chrFindById(g_Vars.chrdata, cmd[2]);
|
||||
|
||||
if (chr && chr->prop && chr->model) {
|
||||
func0f065c44(chr->prop);
|
||||
propRemoveFromCurrentList(chr->prop);
|
||||
propHide(chr->prop);
|
||||
propDelist(chr->prop);
|
||||
propDisable(chr->prop);
|
||||
}
|
||||
|
||||
g_Vars.aioffset += 3;
|
||||
@@ -5467,14 +5467,14 @@ bool aiHideChr(void)
|
||||
/**
|
||||
* @cmd 0116
|
||||
*/
|
||||
bool aiShowObj(void)
|
||||
bool aiEnableObj(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
struct defaultobj *obj = objFindByTagId(cmd[2]);
|
||||
|
||||
if (obj && obj->prop && obj->model) {
|
||||
propPrependToList1(obj->prop);
|
||||
propShow(obj->prop);
|
||||
propActivate(obj->prop);
|
||||
propEnable(obj->prop);
|
||||
|
||||
if (g_Vars.currentplayer->eyespy == NULL && obj->type == OBJTYPE_WEAPON) {
|
||||
struct weaponobj *weapon = (struct weaponobj *) obj;
|
||||
@@ -5493,7 +5493,7 @@ bool aiShowObj(void)
|
||||
/**
|
||||
* @cmd 0117
|
||||
*/
|
||||
bool aiHideObj(void)
|
||||
bool aiDisableObj(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
struct defaultobj *obj = objFindByTagId(cmd[2]);
|
||||
@@ -5509,8 +5509,8 @@ bool aiHideObj(void)
|
||||
objDetach(obj->prop);
|
||||
} else {
|
||||
func0f065c44(obj->prop);
|
||||
propRemoveFromCurrentList(obj->prop);
|
||||
propHide(obj->prop);
|
||||
propDelist(obj->prop);
|
||||
propDisable(obj->prop);
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -5518,8 +5518,8 @@ bool aiHideObj(void)
|
||||
objDetach(obj->prop);
|
||||
} else {
|
||||
func0f065c44(obj->prop);
|
||||
propRemoveFromCurrentList(obj->prop);
|
||||
propHide(obj->prop);
|
||||
propDelist(obj->prop);
|
||||
propDisable(obj->prop);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -10851,9 +10851,9 @@ glabel ai0172
|
||||
/* f05cad8: 8faa0024 */ lw $t2,0x24($sp)
|
||||
/* f05cadc: 0fc19711 */ jal func0f065c44
|
||||
/* f05cae0: 02002025 */ or $a0,$s0,$zero
|
||||
/* f05cae4: 0fc18171 */ jal propRemoveFromCurrentList
|
||||
/* f05cae4: 0fc18171 */ jal propDelist
|
||||
/* f05cae8: 02002025 */ or $a0,$s0,$zero
|
||||
/* f05caec: 0fc180c0 */ jal propHide
|
||||
/* f05caec: 0fc180c0 */ jal propDisable
|
||||
/* f05caf0: 02002025 */ or $a0,$s0,$zero
|
||||
/* f05caf4: 8e040004 */ lw $a0,0x4($s0)
|
||||
/* f05caf8: 0fc22b95 */ jal chrEquipWeapon
|
||||
@@ -10882,8 +10882,8 @@ glabel ai0172
|
||||
//
|
||||
// if (prop && prop->obj && prop->parent == NULL && prop->type == PROPTYPE_WEAPON) {
|
||||
// func0f065c44(prop);
|
||||
// propRemoveFromCurrentList(prop);
|
||||
// propHide(prop);
|
||||
// propDelist(prop);
|
||||
// propDisable(prop);
|
||||
// chrEquipWeapon(prop->obj, g_Vars.chrdata);
|
||||
// }
|
||||
//
|
||||
|
||||
@@ -190,7 +190,7 @@ void explosionAlertChrs(f32 *radius, struct coord *noisepos)
|
||||
&& chrGetTargetProp(&g_ChrSlots[i]) == g_Vars.currentplayer->prop
|
||||
&& g_ChrSlots[i].prop
|
||||
&& g_ChrSlots[i].prop->type == PROPTYPE_CHR
|
||||
&& (g_ChrSlots[i].prop->flags & PROPFLAG_TANGIBLE)) {
|
||||
&& (g_ChrSlots[i].prop->flags & PROPFLAG_ENABLED)) {
|
||||
f32 distance = chrGetDistanceToCoord(&g_ChrSlots[i], noisepos);
|
||||
|
||||
if (distance == 0) {
|
||||
@@ -482,9 +482,9 @@ glabel var7f1b5584
|
||||
/* f12a2c0: 03196021 */ addu $t4,$t8,$t9
|
||||
/* f12a2c4: afac009c */ sw $t4,0x9c($sp)
|
||||
/* f12a2c8: afaa0158 */ sw $t2,0x158($sp)
|
||||
/* f12a2cc: 0fc1814e */ jal propAppendToList1
|
||||
/* f12a2cc: 0fc1814e */ jal propActivateThisFrame
|
||||
/* f12a2d0: 02a02025 */ or $a0,$s5,$zero
|
||||
/* f12a2d4: 0fc180bc */ jal propShow
|
||||
/* f12a2d4: 0fc180bc */ jal propEnable
|
||||
/* f12a2d8: 02a02025 */ or $a0,$s5,$zero
|
||||
/* f12a2dc: 8faa0158 */ lw $t2,0x158($sp)
|
||||
/* f12a2e0: 3c188008 */ lui $t8,%hi(g_ExplosionTypes+0x2c)
|
||||
@@ -5105,7 +5105,7 @@ u32 explosionTick(struct prop *prop)
|
||||
prop->z -= 100;
|
||||
}
|
||||
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_02;
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_ONSCREEN;
|
||||
|
||||
return TICKOP_NONE;
|
||||
}
|
||||
|
||||
@@ -16,8 +16,8 @@ void explosionsReset(void)
|
||||
if (g_Explosions) {
|
||||
for (i = 0; i < 6; i++) {
|
||||
if (g_Explosions[i].prop) {
|
||||
propRemoveFromCurrentList(g_Explosions[i].prop);
|
||||
propHide(g_Explosions[i].prop);
|
||||
propDelist(g_Explosions[i].prop);
|
||||
propDisable(g_Explosions[i].prop);
|
||||
propFree(g_Explosions[i].prop);
|
||||
|
||||
g_Explosions[i].prop = NULL;
|
||||
|
||||
@@ -12,17 +12,17 @@ void gvarsInitProps(void)
|
||||
s32 i;
|
||||
|
||||
g_Vars.props = malloc(ALIGN64(g_Vars.maxprops * sizeof(struct prop)), MEMPOOL_STAGE);
|
||||
g_Vars.tangibleprops = malloc(ALIGN64(200 * sizeof(void *)), MEMPOOL_STAGE);
|
||||
g_Vars.enabledprops = malloc(ALIGN64(200 * sizeof(void *)), MEMPOOL_STAGE);
|
||||
|
||||
var80069880 = 1;
|
||||
|
||||
g_Vars.list1head = NULL;
|
||||
g_Vars.list1tail = NULL;
|
||||
g_Vars.list2head = g_Vars.unk000350 = NULL;
|
||||
g_Vars.activeprops = NULL;
|
||||
g_Vars.activepropstail = NULL;
|
||||
g_Vars.pausedprops = g_Vars.unk000350 = NULL;
|
||||
|
||||
g_Vars.tangibleprops[0] = NULL;
|
||||
g_Vars.enabledprops[0] = NULL;
|
||||
|
||||
g_Vars.unk00034c = g_Vars.tangibleprops;
|
||||
g_Vars.endenabledprops = g_Vars.enabledprops;
|
||||
g_Vars.freeprops = g_Vars.props;
|
||||
|
||||
for (i = 0; i < g_Vars.maxprops - 1; i++) {
|
||||
|
||||
+12
-12
@@ -902,15 +902,15 @@ glabel var7f1a7f80
|
||||
/* f00d630: 31f88000 */ andi $t8,$t7,0x8000
|
||||
/* f00d634: 13000005 */ beqz $t8,.L0f00d64c
|
||||
/* f00d638: 00000000 */ nop
|
||||
/* f00d63c: 0fc1814e */ jal propAppendToList1
|
||||
/* f00d63c: 0fc1814e */ jal propActivateThisFrame
|
||||
/* f00d640: 8fa4007c */ lw $a0,0x7c($sp)
|
||||
/* f00d644: 10000003 */ b .L0f00d654
|
||||
/* f00d648: 00000000 */ nop
|
||||
.L0f00d64c:
|
||||
/* f00d64c: 0fc1812f */ jal propPrependToList1
|
||||
/* f00d64c: 0fc1812f */ jal propActivate
|
||||
/* f00d650: 8fa4007c */ lw $a0,0x7c($sp)
|
||||
.L0f00d654:
|
||||
/* f00d654: 0fc180bc */ jal propShow
|
||||
/* f00d654: 0fc180bc */ jal propEnable
|
||||
/* f00d658: 8fa4007c */ lw $a0,0x7c($sp)
|
||||
.L0f00d65c:
|
||||
/* f00d65c: 8fbf0034 */ lw $ra,0x34($sp)
|
||||
@@ -1098,7 +1098,7 @@ void setupMine(struct mineobj *mine, s32 cmdindex)
|
||||
mine->base.hidden = mine->base.hidden & 0x0fffffff | OBJHFLAG_20000000;
|
||||
}
|
||||
|
||||
mine->base.prop->unk3f_02 = 1;
|
||||
mine->base.prop->forcetick = true;
|
||||
}
|
||||
|
||||
void setupCctv(struct cctvobj *cctv, s32 cmdindex)
|
||||
@@ -1843,9 +1843,9 @@ glabel var7f1a926cpf
|
||||
/* f00e8d0: 0c006b3a */ jal modelSetScale
|
||||
/* f00e8d4: 00000000 */ nop
|
||||
.PF0f00e8d8:
|
||||
/* f00e8d8: 0fc181c7 */ jal propPrependToList1
|
||||
/* f00e8d8: 0fc181c7 */ jal propActivate
|
||||
/* f00e8dc: 8fa4010c */ lw $a0,0x10c($sp)
|
||||
/* f00e8e0: 0fc18154 */ jal propShow
|
||||
/* f00e8e0: 0fc18154 */ jal propEnable
|
||||
/* f00e8e4: 8fa4010c */ lw $a0,0x10c($sp)
|
||||
/* f00e8e8: 10000003 */ b .PF0f00e8f8
|
||||
/* f00e8ec: 8fbf0034 */ lw $ra,0x34($sp)
|
||||
@@ -2233,9 +2233,9 @@ glabel var7f1a8064
|
||||
/* f00e8d4: 0c006bd6 */ jal modelSetScale
|
||||
/* f00e8d8: 00000000 */ nop
|
||||
.L0f00e8dc:
|
||||
/* f00e8dc: 0fc1812f */ jal propPrependToList1
|
||||
/* f00e8dc: 0fc1812f */ jal propActivate
|
||||
/* f00e8e0: 8fa4010c */ lw $a0,0x10c($sp)
|
||||
/* f00e8e4: 0fc180bc */ jal propShow
|
||||
/* f00e8e4: 0fc180bc */ jal propEnable
|
||||
/* f00e8e8: 8fa4010c */ lw $a0,0x10c($sp)
|
||||
/* f00e8ec: 10000003 */ b .L0f00e8fc
|
||||
/* f00e8f0: 8fbf0034 */ lw $ra,0x34($sp)
|
||||
@@ -2400,8 +2400,8 @@ glabel var7f1a8064
|
||||
// modelSetScale(door->base.model, door->base.model->scale * mult);
|
||||
// }
|
||||
//
|
||||
// propPrependToList1(prop);
|
||||
// propShow(prop);
|
||||
// propActivate(prop);
|
||||
// propEnable(prop);
|
||||
// } else {
|
||||
// door->base.prop = NULL;
|
||||
// }
|
||||
@@ -3273,7 +3273,7 @@ void setupParseObjects(s32 stagenum)
|
||||
prop->pos.y = func0002a36c(&prop->pos, prop->rooms, NULL, 0) + 30;
|
||||
}
|
||||
|
||||
prop->unk3f_02 = true;
|
||||
prop->forcetick = true;
|
||||
}
|
||||
break;
|
||||
case OBJTYPE_CHOPPER:
|
||||
@@ -3283,7 +3283,7 @@ void setupParseObjects(s32 stagenum)
|
||||
setupGenericObject(obj, index);
|
||||
|
||||
obj->flags |= OBJFLAG_20000000;
|
||||
obj->prop->unk3f_02 = true;
|
||||
obj->prop->forcetick = true;
|
||||
|
||||
chopper->turnrot60 = 0;
|
||||
chopper->roty = 0;
|
||||
|
||||
@@ -965,10 +965,10 @@ glabel var7f1a827c
|
||||
/* f011fd0: 8f0e00bc */ lw $t6,0xbc($t8)
|
||||
/* f011fd4: a1d90000 */ sb $t9,0x0($t6)
|
||||
/* f011fd8: 8e2f0284 */ lw $t7,0x284($s1)
|
||||
/* f011fdc: 0fc181c7 */ jal propPrependToList1
|
||||
/* f011fdc: 0fc181c7 */ jal propActivate
|
||||
/* f011fe0: 8de400bc */ lw $a0,0xbc($t7)
|
||||
/* f011fe4: 8e290284 */ lw $t1,0x284($s1)
|
||||
/* f011fe8: 0fc18154 */ jal propShow
|
||||
/* f011fe8: 0fc18154 */ jal propEnable
|
||||
/* f011fec: 8d2400bc */ lw $a0,0xbc($t1)
|
||||
/* f011ff0: 8e2a0284 */ lw $t2,0x284($s1)
|
||||
/* f011ff4: 00002825 */ move $a1,$zero
|
||||
@@ -1786,10 +1786,10 @@ glabel var7f1a827c
|
||||
/* f011fac: 8f0e00bc */ lw $t6,0xbc($t8)
|
||||
/* f011fb0: a1d90000 */ sb $t9,0x0($t6)
|
||||
/* f011fb4: 8e2f0284 */ lw $t7,0x284($s1)
|
||||
/* f011fb8: 0fc1812f */ jal propPrependToList1
|
||||
/* f011fb8: 0fc1812f */ jal propActivate
|
||||
/* f011fbc: 8de400bc */ lw $a0,0xbc($t7)
|
||||
/* f011fc0: 8e290284 */ lw $t1,0x284($s1)
|
||||
/* f011fc4: 0fc180bc */ jal propShow
|
||||
/* f011fc4: 0fc180bc */ jal propEnable
|
||||
/* f011fc8: 8d2400bc */ lw $a0,0xbc($t1)
|
||||
/* f011fcc: 8e2a0284 */ lw $t2,0x284($s1)
|
||||
/* f011fd0: 00002825 */ or $a1,$zero,$zero
|
||||
@@ -2599,10 +2599,10 @@ glabel var7f1a827c
|
||||
/* f011cd0: 8f0e00bc */ lw $t6,0xbc($t8)
|
||||
/* f011cd4: a1d90000 */ sb $t9,0x0($t6)
|
||||
/* f011cd8: 8e2f0284 */ lw $t7,0x284($s1)
|
||||
/* f011cdc: 0fc17ddf */ jal propPrependToList1
|
||||
/* f011cdc: 0fc17ddf */ jal propActivate
|
||||
/* f011ce0: 8de400bc */ lw $a0,0xbc($t7)
|
||||
/* f011ce4: 8e290284 */ lw $t1,0x284($s1)
|
||||
/* f011ce8: 0fc17d6c */ jal propShow
|
||||
/* f011ce8: 0fc17d6c */ jal propEnable
|
||||
/* f011cec: 8d2400bc */ lw $a0,0xbc($t1)
|
||||
/* f011cf0: 8e2a0284 */ lw $t2,0x284($s1)
|
||||
/* f011cf4: 00002825 */ or $a1,$zero,$zero
|
||||
@@ -3164,8 +3164,8 @@ glabel var7f1a827c
|
||||
// g_Vars.currentplayer->prop->chr = NULL;
|
||||
// g_Vars.currentplayer->prop->type = PROPTYPE_PLAYER;
|
||||
//
|
||||
// propPrependToList1(g_Vars.currentplayer->prop);
|
||||
// propShow(g_Vars.currentplayer->prop);
|
||||
// propActivate(g_Vars.currentplayer->prop);
|
||||
// propEnable(g_Vars.currentplayer->prop);
|
||||
// chrInit(g_Vars.currentplayer->prop, NULL);
|
||||
//
|
||||
// if (g_Vars.coopplayernum >= 0) {
|
||||
|
||||
@@ -73,8 +73,8 @@ void aibotAllocate(s32 chrnum, s32 aibotnum)
|
||||
prop = propAllocateChr(model, &pos, rooms, 0.0f, ailistFindById(GAILIST_AI_BOT_INIT));
|
||||
|
||||
if (prop != NULL) {
|
||||
propPrependToList1(prop);
|
||||
propShow(prop);
|
||||
propActivate(prop);
|
||||
propEnable(prop);
|
||||
|
||||
chr = prop->chr;
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ void chrsReset(void)
|
||||
&& g_ChrSlots[i].prop
|
||||
&& g_ChrSlots[i].prop->type == PROPTYPE_CHR) {
|
||||
func0f020d44(g_ChrSlots[i].prop, true);
|
||||
propRemoveFromCurrentList(g_ChrSlots[i].prop);
|
||||
propHide(g_ChrSlots[i].prop);
|
||||
propDelist(g_ChrSlots[i].prop);
|
||||
propDisable(g_ChrSlots[i].prop);
|
||||
propFree(g_ChrSlots[i].prop);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -755,8 +755,8 @@ void chrUnpack(s32 stagenum, struct packedchr *packed, s32 cmdindex)
|
||||
prop = propAllocateChr(model, &pad.pos, rooms, angle, ailistFindById(packed->ailistnum));
|
||||
|
||||
if (prop != NULL) {
|
||||
propPrependToList1(prop);
|
||||
propShow(prop);
|
||||
propActivate(prop);
|
||||
propEnable(prop);
|
||||
|
||||
chr = prop->chr;
|
||||
chrSetChrnum(chr, packed->chrnum);
|
||||
@@ -915,8 +915,8 @@ struct prop *propAllocateEyespy(struct pad *pad, s16 room)
|
||||
prop = propAllocateChr(model, &pad->pos, rooms, 0, ailistFindById(GAILIST_IDLE));
|
||||
|
||||
if (prop) {
|
||||
propPrependToList1(prop);
|
||||
propShow(prop);
|
||||
propActivate(prop);
|
||||
propEnable(prop);
|
||||
chr = prop->chr;
|
||||
chrSetChrnum(chr, getNextUnusedChrnum());
|
||||
chr->bodynum = BODY_EYESPY;
|
||||
|
||||
@@ -11150,8 +11150,8 @@ void func0f09ebcc(struct defaultobj *obj, struct coord *coord, s16 *rooms, Mtxf
|
||||
struct prop *objprop = obj->prop;
|
||||
|
||||
if (objprop) {
|
||||
propPrependToList1(objprop);
|
||||
propShow(objprop);
|
||||
propActivate(objprop);
|
||||
propEnable(objprop);
|
||||
func00015f04(obj->model->scale, matrix1);
|
||||
func0f06a580(obj, coord, matrix1, rooms);
|
||||
|
||||
@@ -12367,7 +12367,7 @@ void func0f09f848(s32 handnum)
|
||||
func00015d18(&hand->muzzlemat, &model->matrices[0]);
|
||||
func0001cb0c(model, model->filedata->rootnode);
|
||||
|
||||
objprop->flags |= PROPFLAG_40 | PROPFLAG_02;
|
||||
objprop->flags |= PROPFLAG_40 | PROPFLAG_ONSCREEN;
|
||||
objprop->z = -model->matrices[0].m[3][2];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ void func0f0b65f8(void)
|
||||
func0f0b63b0(i, 1);
|
||||
}
|
||||
|
||||
prop = g_Vars.list1head;
|
||||
prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
if (prop->type == PROPTYPE_OBJ) {
|
||||
|
||||
@@ -1367,8 +1367,8 @@ bool currentPlayerAssumeChrForAnti(struct chrdata *hostchr, bool force)
|
||||
|
||||
func0f020d44(hostprop, true);
|
||||
func0f065c44(hostprop);
|
||||
propRemoveFromCurrentList(hostprop);
|
||||
propHide(hostprop);
|
||||
propDelist(hostprop);
|
||||
propDisable(hostprop);
|
||||
propFree(hostprop);
|
||||
|
||||
return true;
|
||||
@@ -1447,7 +1447,7 @@ void currentPlayerSpawn(void)
|
||||
&& (g_ChrSlots[i].chrflags & CHRCFLAG_HIDDEN) == 0
|
||||
&& g_ChrSlots[i].prop->type == PROPTYPE_CHR
|
||||
&& !chrIsDead(&g_ChrSlots[i])
|
||||
&& (g_ChrSlots[i].prop->flags & PROPFLAG_TANGIBLE)) {
|
||||
&& (g_ChrSlots[i].prop->flags & PROPFLAG_ENABLED)) {
|
||||
if (g_Vars.bond->prop) {
|
||||
xdiff = g_ChrSlots[i].prop->pos.x - g_Vars.bond->prop->pos.x;
|
||||
ydiff = g_ChrSlots[i].prop->pos.y - g_Vars.bond->prop->pos.y;
|
||||
@@ -15442,7 +15442,7 @@ s32 playerTick(struct prop *prop)
|
||||
|
||||
func0f0220ac(prop->chr);
|
||||
|
||||
if (prop->flags & PROPFLAG_02) {
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (player->model00d4->filedata->type == &g_ModelTypeChr) {
|
||||
spe8 = player->model00d4->matrices;
|
||||
} else {
|
||||
@@ -15587,7 +15587,7 @@ s32 playerTick(struct prop *prop)
|
||||
}
|
||||
}
|
||||
|
||||
prop->flags &= ~PROPFLAG_02;
|
||||
prop->flags &= ~PROPFLAG_ONSCREEN;
|
||||
|
||||
return TICKOP_NONE;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ struct var8007e3d0 var8007e3d0[] = {
|
||||
void func0f129210(union modelrwdata *find, union modelrwdata *replacement)
|
||||
{
|
||||
u32 stack;
|
||||
struct prop *prop = g_Vars.list1head;
|
||||
struct prop *prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
if (prop->type == PROPTYPE_OBJ) {
|
||||
|
||||
+8
-8
@@ -1209,7 +1209,7 @@ bool lvCheckCmpFollowThreat(struct threat *threat, s32 index)
|
||||
}
|
||||
}
|
||||
|
||||
if ((threat->prop->flags & PROPFLAG_02)
|
||||
if ((threat->prop->flags & PROPFLAG_ONSCREEN)
|
||||
&& (chr->chrflags & CHRCFLAG_NOAUTOAIM) == 0) {
|
||||
struct model *model = chr->model;
|
||||
sp72 = -1;
|
||||
@@ -1225,7 +1225,7 @@ bool lvCheckCmpFollowThreat(struct threat *threat, s32 index)
|
||||
return false;
|
||||
case PROPTYPE_OBJ:
|
||||
case PROPTYPE_WEAPON:
|
||||
if (threat->prop->flags & PROPFLAG_02) {
|
||||
if (threat->prop->flags & PROPFLAG_ONSCREEN) {
|
||||
struct defaultobj *obj = threat->prop->obj;
|
||||
struct model *model = obj->model;
|
||||
sp72 = -1;
|
||||
@@ -1544,7 +1544,7 @@ void lvFindThreatsForProp(struct prop *prop, bool inchild, struct coord *playerp
|
||||
}
|
||||
|
||||
if (prop->obj
|
||||
&& (prop->flags & PROPFLAG_02)
|
||||
&& (prop->flags & PROPFLAG_ONSCREEN)
|
||||
&& (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON)
|
||||
&& condition) {
|
||||
pass = false;
|
||||
@@ -1665,7 +1665,7 @@ void func0f168f24(struct prop *prop, bool inchild, struct coord *playerpos, s32
|
||||
|
||||
for (i = 0; i != 4; i++) {
|
||||
if (g_Vars.currentplayer->cmpfollowprops[i].prop == prop
|
||||
&& (prop->flags & PROPFLAG_02)) {
|
||||
&& (prop->flags & PROPFLAG_ONSCREEN)) {
|
||||
model = NULL;
|
||||
|
||||
if (prop->type == PROPTYPE_OBJ
|
||||
@@ -1717,14 +1717,14 @@ void lvFindThreats(void)
|
||||
struct prop *prop;
|
||||
f32 distances[] = {0, 0, 0, 0};
|
||||
s32 activeslots[] = {false, false, false, false};
|
||||
struct prop **propptr = g_Vars.unk00034c - 1;
|
||||
struct prop **propptr = g_Vars.endenabledprops - 1;
|
||||
struct coord campos;
|
||||
|
||||
campos.x = g_Vars.currentplayer->cam_pos.x;
|
||||
campos.y = g_Vars.currentplayer->cam_pos.y;
|
||||
campos.z = g_Vars.currentplayer->cam_pos.z;
|
||||
|
||||
while (propptr >= g_Vars.tangibleprops) {
|
||||
while (propptr >= g_Vars.enabledprops) {
|
||||
prop = *propptr;
|
||||
|
||||
if (prop) {
|
||||
@@ -1742,9 +1742,9 @@ void lvFindThreats(void)
|
||||
}
|
||||
}
|
||||
|
||||
propptr = g_Vars.unk00034c - 1;
|
||||
propptr = g_Vars.endenabledprops - 1;
|
||||
|
||||
while (propptr >= g_Vars.tangibleprops) {
|
||||
while (propptr >= g_Vars.enabledprops) {
|
||||
prop = *propptr;
|
||||
|
||||
if (prop) {
|
||||
|
||||
@@ -869,7 +869,7 @@ void scenarioHtbTick(void)
|
||||
g_ScenarioData.htb.token = NULL;
|
||||
|
||||
// Check if briefcase is on the ground
|
||||
prop = g_Vars.list1head;
|
||||
prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
if (prop->type == PROPTYPE_WEAPON) {
|
||||
@@ -5243,7 +5243,7 @@ void scenarioHtmTick(void)
|
||||
g_ScenarioData.htm.uplink = NULL;
|
||||
|
||||
// Check if uplink is on the ground
|
||||
prop = g_Vars.list1head;
|
||||
prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
if (prop->type == PROPTYPE_WEAPON) {
|
||||
@@ -10144,10 +10144,10 @@ glabel func0f186508
|
||||
/* f186684: 0fc033b9 */ jal setupGenericObject
|
||||
/* f186688: a0490002 */ sb $t1,0x2($v0)
|
||||
/* f18668c: 8fad0018 */ lw $t5,0x18($sp)
|
||||
/* f186690: 0fc1812f */ jal propPrependToList1
|
||||
/* f186690: 0fc1812f */ jal propActivate
|
||||
/* f186694: 8da40014 */ lw $a0,0x14($t5)
|
||||
/* f186698: 8fb90018 */ lw $t9,0x18($sp)
|
||||
/* f18669c: 0fc180bc */ jal propShow
|
||||
/* f18669c: 0fc180bc */ jal propEnable
|
||||
/* f1866a0: 8f240014 */ lw $a0,0x14($t9)
|
||||
/* f1866a4: 8fb80018 */ lw $t8,0x18($sp)
|
||||
/* f1866a8: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
|
||||
@@ -481,7 +481,7 @@ void objectiveCheckHolograph(f32 maxdist)
|
||||
struct defaultobj *obj = objFindByTagId(criteria->obj);
|
||||
|
||||
if (obj && obj->prop
|
||||
&& (obj->prop->flags & PROPFLAG_02)
|
||||
&& (obj->prop->flags & PROPFLAG_ONSCREEN)
|
||||
&& obj->prop->z >= 0
|
||||
&& objIsHealthy(obj)) {
|
||||
struct coord sp9c;
|
||||
|
||||
+189
-132
@@ -142,24 +142,39 @@ glabel func0f0601b0
|
||||
/* f0602ec: 27bd0348 */ addiu $sp,$sp,0x348
|
||||
);
|
||||
|
||||
void propShow(struct prop *prop)
|
||||
/**
|
||||
* Enable a prop. This is the opposite of disabling (see propDisable below).
|
||||
*/
|
||||
void propEnable(struct prop *prop)
|
||||
{
|
||||
prop->flags |= PROPFLAG_TANGIBLE;
|
||||
prop->flags |= PROPFLAG_ENABLED;
|
||||
}
|
||||
|
||||
void propHide(struct prop *prop)
|
||||
/**
|
||||
* Disable the given prop. Disabled props do not tick, do not render and do not
|
||||
* have any collision checks. This is commonly used for chrs who "spawn" later
|
||||
* in the level.
|
||||
*
|
||||
* Due to a probable bug, these props can be damaged by explosives which causes
|
||||
* them to become enabled.
|
||||
*/
|
||||
void propDisable(struct prop *prop)
|
||||
{
|
||||
struct prop **ptr;
|
||||
|
||||
prop->flags &= ~PROPFLAG_TANGIBLE;
|
||||
prop->flags &= ~PROPFLAG_ENABLED;
|
||||
|
||||
for (ptr = g_Vars.tangibleprops; ptr < g_Vars.unk00034c; ptr++) {
|
||||
for (ptr = g_Vars.enabledprops; ptr < g_Vars.endenabledprops; ptr++) {
|
||||
if (*ptr == prop) {
|
||||
*ptr = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Allocate a prop. The prop is taken from the head of the freeprops list and
|
||||
* initialised.
|
||||
*/
|
||||
struct prop *propAllocate(void)
|
||||
{
|
||||
struct prop *prop = g_Vars.freeprops;
|
||||
@@ -176,10 +191,10 @@ struct prop *propAllocate(void)
|
||||
prop->rooms[0] = -1;
|
||||
prop->chr = NULL;
|
||||
prop->propstateindex = g_Vars.allocstateindex;
|
||||
prop->unk3e = 0;
|
||||
prop->forcetick = true;
|
||||
prop->unk3f_02 = 0;
|
||||
prop->inlist1 = false;
|
||||
prop->backgroundedframes = 0;
|
||||
prop->forceonetick = true;
|
||||
prop->forcetick = false;
|
||||
prop->active = false;
|
||||
prop->backgrounded = false;
|
||||
prop->lastupdateframe = 0xffff;
|
||||
prop->propupdate240 = 0;
|
||||
@@ -200,6 +215,12 @@ struct prop *propAllocate(void)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Free the given prop. The prop must not be in any list prior to calling this
|
||||
* function.
|
||||
*
|
||||
* The prop is inserted to the head of the freeprops list.
|
||||
*/
|
||||
void propFree(struct prop *prop)
|
||||
{
|
||||
if (prop->type == PROPTYPE_CHR) {
|
||||
@@ -215,83 +236,99 @@ void propFree(struct prop *prop)
|
||||
g_Vars.freeprops = prop;
|
||||
}
|
||||
|
||||
void propPrependToList1(struct prop *prop)
|
||||
/**
|
||||
* Insert the prop to the head of activeprops. The prop must not be in any list
|
||||
* prior to calling this function.
|
||||
*
|
||||
* If this function is being called from propsTick (which iterates active props)
|
||||
* then the prop will do its next tick on the next frame, due to it being
|
||||
* inserted at the head.
|
||||
*/
|
||||
void propActivate(struct prop *prop)
|
||||
{
|
||||
if (g_Vars.list1head && g_Vars.list1head != g_Vars.list2head) {
|
||||
if (prop != g_Vars.list1head && !prop->prev) {
|
||||
g_Vars.list1head->prev = prop;
|
||||
prop->next = g_Vars.list1head;
|
||||
if (g_Vars.activeprops && g_Vars.activeprops != g_Vars.pausedprops) {
|
||||
if (prop != g_Vars.activeprops && !prop->prev) {
|
||||
g_Vars.activeprops->prev = prop;
|
||||
prop->next = g_Vars.activeprops;
|
||||
prop->prev = NULL;
|
||||
g_Vars.list1head = prop;
|
||||
g_Vars.activeprops = prop;
|
||||
}
|
||||
} else {
|
||||
prop->next = g_Vars.list2head;
|
||||
prop->next = g_Vars.pausedprops;
|
||||
|
||||
if (prop->next) {
|
||||
prop->next->prev = prop;
|
||||
}
|
||||
|
||||
prop->prev = NULL;
|
||||
g_Vars.list1head = prop;
|
||||
g_Vars.list1tail = g_Vars.list1head;
|
||||
g_Vars.activeprops = prop;
|
||||
g_Vars.activepropstail = g_Vars.activeprops;
|
||||
}
|
||||
|
||||
prop->unk3e = 0;
|
||||
prop->inlist1 = true;
|
||||
prop->backgroundedframes = 0;
|
||||
prop->active = true;
|
||||
}
|
||||
|
||||
void propAppendToList1(struct prop *prop)
|
||||
/**
|
||||
* Similar to propActivate, but the prop inserted to the tail of the activeprops
|
||||
* list. This makes the prop tick on the current frame if called from propsTick,
|
||||
* because propsTick iterates the activeprops list from head to tail.
|
||||
*/
|
||||
void propActivateThisFrame(struct prop *prop)
|
||||
{
|
||||
if (g_Vars.list1tail && g_Vars.list1tail != g_Vars.list2head) {
|
||||
if (prop != g_Vars.list1tail && !prop->next) {
|
||||
prop->prev = g_Vars.list1tail;
|
||||
prop->next = g_Vars.list1tail->next;
|
||||
if (g_Vars.activepropstail && g_Vars.activepropstail != g_Vars.pausedprops) {
|
||||
if (prop != g_Vars.activepropstail && !prop->next) {
|
||||
prop->prev = g_Vars.activepropstail;
|
||||
prop->next = g_Vars.activepropstail->next;
|
||||
|
||||
if (prop->next) {
|
||||
prop->next->prev = prop;
|
||||
}
|
||||
|
||||
g_Vars.list1tail->next = prop;
|
||||
g_Vars.list1tail = prop;
|
||||
g_Vars.activepropstail->next = prop;
|
||||
g_Vars.activepropstail = prop;
|
||||
}
|
||||
} else {
|
||||
prop->next = g_Vars.list2head;
|
||||
prop->next = g_Vars.pausedprops;
|
||||
|
||||
if (prop->next) {
|
||||
prop->next->prev = prop;
|
||||
}
|
||||
|
||||
prop->prev = NULL;
|
||||
g_Vars.list1head = prop;
|
||||
g_Vars.list1tail = g_Vars.list1head;
|
||||
g_Vars.activeprops = prop;
|
||||
g_Vars.activepropstail = g_Vars.activeprops;
|
||||
}
|
||||
|
||||
prop->unk3e = 0;
|
||||
prop->inlist1 = true;
|
||||
prop->backgroundedframes = 0;
|
||||
prop->active = true;
|
||||
}
|
||||
|
||||
void propRemoveFromCurrentList(struct prop *prop)
|
||||
/**
|
||||
* Remove the prop from its current list (activeprops or pausedprops).
|
||||
*/
|
||||
void propDelist(struct prop *prop)
|
||||
{
|
||||
if (prop->inlist1) {
|
||||
if (prop == g_Vars.list1head) {
|
||||
g_Vars.list1head = prop->next;
|
||||
if (prop->active) {
|
||||
if (prop == g_Vars.activeprops) {
|
||||
g_Vars.activeprops = prop->next;
|
||||
}
|
||||
|
||||
if (prop == g_Vars.list1tail) {
|
||||
if (g_Vars.list1head == g_Vars.list2head) {
|
||||
g_Vars.list1tail = g_Vars.list2head;
|
||||
if (prop == g_Vars.activepropstail) {
|
||||
if (g_Vars.activeprops == g_Vars.pausedprops) {
|
||||
g_Vars.activepropstail = g_Vars.pausedprops;
|
||||
} else {
|
||||
g_Vars.list1tail = prop->prev;
|
||||
g_Vars.activepropstail = prop->prev;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (prop == g_Vars.list2head) {
|
||||
if (g_Vars.list1head == g_Vars.list2head) {
|
||||
g_Vars.list1tail = prop->next;
|
||||
g_Vars.list1head = g_Vars.list1tail;
|
||||
if (prop == g_Vars.pausedprops) {
|
||||
if (g_Vars.activeprops == g_Vars.pausedprops) {
|
||||
g_Vars.activepropstail = prop->next;
|
||||
g_Vars.activeprops = g_Vars.activepropstail;
|
||||
}
|
||||
|
||||
g_Vars.list2head = prop->next;
|
||||
g_Vars.pausedprops = prop->next;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -305,8 +342,8 @@ void propRemoveFromCurrentList(struct prop *prop)
|
||||
|
||||
prop->next = NULL;
|
||||
prop->prev = NULL;
|
||||
prop->inlist1 = false;
|
||||
prop->unk3e = 0;
|
||||
prop->active = false;
|
||||
prop->backgroundedframes = 0;
|
||||
}
|
||||
|
||||
void propReparent(struct prop *mover, struct prop *adopter)
|
||||
@@ -378,12 +415,12 @@ Gfx *propsRender(Gfx *gdl, s16 arg1, s32 arg2, s16 *arg3)
|
||||
|
||||
if (arg2 == 0 || arg2 == 2) {
|
||||
// Render tangible list in reverse
|
||||
ptr = g_Vars.unk00034c - 1;
|
||||
ptr = g_Vars.endenabledprops - 1;
|
||||
|
||||
tmp = arg3 + (g_Vars.unk00034c - g_Vars.tangibleprops);
|
||||
tmp = arg3 + (g_Vars.endenabledprops - g_Vars.enabledprops);
|
||||
tmp--;
|
||||
|
||||
while (ptr >= g_Vars.tangibleprops) {
|
||||
while (ptr >= g_Vars.enabledprops) {
|
||||
if (arg1 == *tmp) {
|
||||
prop = *ptr;
|
||||
|
||||
@@ -400,10 +437,10 @@ Gfx *propsRender(Gfx *gdl, s16 arg1, s32 arg2, s16 *arg3)
|
||||
}
|
||||
} else {
|
||||
// Render tangible list forwards
|
||||
ptr = g_Vars.tangibleprops;
|
||||
ptr = g_Vars.enabledprops;
|
||||
tmp = arg3;
|
||||
|
||||
while (ptr < g_Vars.unk00034c) {
|
||||
while (ptr < g_Vars.endenabledprops) {
|
||||
if (arg1 == *tmp) {
|
||||
prop = *ptr;
|
||||
|
||||
@@ -2275,11 +2312,11 @@ void handInflictCloseRangeDamage(s32 handnum, struct gset *gset, bool arg2)
|
||||
bool skipthething;
|
||||
|
||||
playerprop = g_Vars.currentplayer->prop;
|
||||
ptr = g_Vars.unk00034c - 1;
|
||||
ptr = g_Vars.endenabledprops - 1;
|
||||
skipthething = false;
|
||||
|
||||
// Iterate tangible list in reverse
|
||||
while (ptr >= g_Vars.tangibleprops) {
|
||||
while (ptr >= g_Vars.enabledprops) {
|
||||
struct prop *prop = *ptr;
|
||||
|
||||
if (prop && prop->z < 500) {
|
||||
@@ -2545,25 +2582,25 @@ void propExecuteTickOperation(struct prop *prop, s32 op)
|
||||
obj->hidden2 &= ~OBJH2FLAG_40;
|
||||
|
||||
func0f065c44(prop);
|
||||
propHide(prop);
|
||||
propDisable(prop);
|
||||
|
||||
if (!prop->inlist1) {
|
||||
propMoveFromList2To1(prop);
|
||||
if (!prop->active) {
|
||||
propUnpause(prop);
|
||||
}
|
||||
} else {
|
||||
func0f065c44(prop);
|
||||
propRemoveFromCurrentList(prop);
|
||||
propHide(prop);
|
||||
propDelist(prop);
|
||||
propDisable(prop);
|
||||
propFree(prop);
|
||||
}
|
||||
} else if (op == TICKOP_DISABLE) {
|
||||
func0f065c44(prop);
|
||||
propRemoveFromCurrentList(prop);
|
||||
propHide(prop);
|
||||
propDelist(prop);
|
||||
propDisable(prop);
|
||||
} else if (op == TICKOP_GIVETOPLAYER) {
|
||||
func0f065c44(prop);
|
||||
propRemoveFromCurrentList(prop);
|
||||
propHide(prop);
|
||||
propDelist(prop);
|
||||
propDisable(prop);
|
||||
objDetach(prop);
|
||||
func0f06ac90(prop);
|
||||
propReparent(prop, g_Vars.currentplayer->prop);
|
||||
@@ -2664,11 +2701,11 @@ glabel currentPlayerFindPropForInteract
|
||||
// bool result;
|
||||
//
|
||||
// var8009cda8 = NULL;
|
||||
// ptr = g_Vars.unk00034c - 1;
|
||||
// ptr = g_Vars.endenabledprops - 1;
|
||||
// result = true;
|
||||
//
|
||||
// // Iterate tangible list in reverse
|
||||
// while (ptr >= g_Vars.tangibleprops) {
|
||||
// while (ptr >= g_Vars.enabledprops) {
|
||||
// struct prop *prop = *ptr;
|
||||
//
|
||||
// if (prop) {
|
||||
@@ -2697,11 +2734,11 @@ glabel currentPlayerFindPropForInteract
|
||||
|
||||
void func0f062dd0(void)
|
||||
{
|
||||
struct prop **ptr = g_Vars.unk00034c - 1;
|
||||
struct prop **ptr = g_Vars.endenabledprops - 1;
|
||||
bool result = true;
|
||||
|
||||
// Iterate tangible list in reverse
|
||||
while (ptr >= g_Vars.tangibleprops) {
|
||||
while (ptr >= g_Vars.enabledprops) {
|
||||
struct prop *prop = *ptr;
|
||||
|
||||
if (prop) {
|
||||
@@ -2750,50 +2787,67 @@ bool currentPlayerInteract(bool eyespy)
|
||||
return true;
|
||||
}
|
||||
|
||||
void propPrependToList2(struct prop *prop)
|
||||
/**
|
||||
* Pause a prop. Paused props still exist in the stage, but are not near the
|
||||
* player and do not tick.
|
||||
*
|
||||
* The prop is removed from its current list (activeprops or pausedprops)
|
||||
* if any, and is then inserted to the head of pausedprops.
|
||||
*/
|
||||
void propPause(struct prop *prop)
|
||||
{
|
||||
if ((prop->flags & PROPFLAG_10) == 0) {
|
||||
propRemoveFromCurrentList(prop);
|
||||
if ((prop->flags & PROPFLAG_DONTPAUSE) == 0) {
|
||||
propDelist(prop);
|
||||
|
||||
if (g_Vars.list2head) {
|
||||
prop->prev = g_Vars.list2head->prev;
|
||||
if (g_Vars.pausedprops) {
|
||||
prop->prev = g_Vars.pausedprops->prev;
|
||||
|
||||
if (prop->prev) {
|
||||
prop->prev->next = prop;
|
||||
}
|
||||
|
||||
g_Vars.list2head->prev = prop;
|
||||
prop->next = g_Vars.list2head;
|
||||
g_Vars.pausedprops->prev = prop;
|
||||
prop->next = g_Vars.pausedprops;
|
||||
|
||||
if (g_Vars.list1head == g_Vars.list2head) {
|
||||
g_Vars.list1head = g_Vars.list1tail = prop;
|
||||
if (g_Vars.activeprops == g_Vars.pausedprops) {
|
||||
g_Vars.activeprops = g_Vars.activepropstail = prop;
|
||||
}
|
||||
|
||||
g_Vars.list2head = prop;
|
||||
g_Vars.pausedprops = prop;
|
||||
} else {
|
||||
prop->next = NULL;
|
||||
|
||||
if (g_Vars.list1tail) {
|
||||
prop->prev = g_Vars.list1tail;
|
||||
g_Vars.list1tail->next = prop;
|
||||
if (g_Vars.activepropstail) {
|
||||
prop->prev = g_Vars.activepropstail;
|
||||
g_Vars.activepropstail->next = prop;
|
||||
} else {
|
||||
g_Vars.list1tail = prop;
|
||||
g_Vars.list1head = prop;
|
||||
g_Vars.activepropstail = prop;
|
||||
g_Vars.activeprops = prop;
|
||||
}
|
||||
|
||||
g_Vars.list2head = prop;
|
||||
g_Vars.pausedprops = prop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void propMoveFromList2To1(struct prop *prop)
|
||||
/**
|
||||
* Unpause a prop. The prop will begin ticking.
|
||||
*
|
||||
* The prop is removed from its current list (activeprops or pausedprops)
|
||||
* if any, and is then inserted to the head of activeprops.
|
||||
*
|
||||
* If this function is being called from propsTick (which iterates active props)
|
||||
* then the prop will do its next tick on the next frame, due to it being
|
||||
* inserted at the head.
|
||||
*/
|
||||
void propUnpause(struct prop *prop)
|
||||
{
|
||||
if (prop == g_Vars.list2head) {
|
||||
if (g_Vars.list1head == g_Vars.list2head) {
|
||||
g_Vars.list1head = g_Vars.list1tail = prop->next;
|
||||
if (prop == g_Vars.pausedprops) {
|
||||
if (g_Vars.activeprops == g_Vars.pausedprops) {
|
||||
g_Vars.activeprops = g_Vars.activepropstail = prop->next;
|
||||
}
|
||||
|
||||
g_Vars.list2head = prop->next;
|
||||
g_Vars.pausedprops = prop->next;
|
||||
}
|
||||
|
||||
if (prop->next) {
|
||||
@@ -2807,12 +2861,12 @@ void propMoveFromList2To1(struct prop *prop)
|
||||
prop->next = NULL;
|
||||
prop->prev = NULL;
|
||||
|
||||
propPrependToList1(prop);
|
||||
propActivate(prop);
|
||||
}
|
||||
|
||||
// 0 = will tick when backgrounded
|
||||
// 1 = will not tick when backgrounded
|
||||
u8 g_ObjsPausedWhenBackgrounded[] = {
|
||||
u8 g_PausableObjs[] = {
|
||||
0, // dummy element because objects are 1-indexed
|
||||
0, // OBJTYPE_DOOR
|
||||
0, // OBJTYPE_DOORSCALE
|
||||
@@ -3437,7 +3491,7 @@ glabel var7f1ab190pf
|
||||
/* f063a40: 01b9082a */ slt $at,$t5,$t9
|
||||
/* f063a44: 5020001c */ beqzl $at,.PF0f063ab8
|
||||
/* f063a48: 8faf0034 */ lw $t7,0x34($sp)
|
||||
/* f063a4c: 0fc18c56 */ jal propPrependToList2
|
||||
/* f063a4c: 0fc18c56 */ jal propPause
|
||||
/* f063a50: 02002025 */ move $a0,$s0
|
||||
/* f063a54: 10000017 */ b .PF0f063ab4
|
||||
/* f063a58: 24060005 */ li $a2,0x5
|
||||
@@ -3521,9 +3575,9 @@ glabel var7f1ab190pf
|
||||
/* f063b6c: 35ee0080 */ ori $t6,$t7,0x80
|
||||
/* f063b70: a20e003f */ sb $t6,0x3f($s0)
|
||||
/* f063b74: afa20060 */ sw $v0,0x60($sp)
|
||||
/* f063b78: 0fc18209 */ jal propRemoveFromCurrentList
|
||||
/* f063b78: 0fc18209 */ jal propDelist
|
||||
/* f063b7c: 02002025 */ move $a0,$s0
|
||||
/* f063b80: 0fc181e6 */ jal propAppendToList1
|
||||
/* f063b80: 0fc181e6 */ jal propActivateThisFrame
|
||||
/* f063b84: 02002025 */ move $a0,$s0
|
||||
/* f063b88: 8fb8004c */ lw $t8,0x4c($sp)
|
||||
/* f063b8c: 8fa20060 */ lw $v0,0x60($sp)
|
||||
@@ -4394,10 +4448,10 @@ glabel propsTick
|
||||
/* f063768: 24010007 */ addiu $at,$zero,0x7
|
||||
.L0f06376c:
|
||||
/* f06376c: 8e020004 */ lw $v0,0x4($s0)
|
||||
/* f063770: 3c188007 */ lui $t8,%hi(g_ObjsPausedWhenBackgrounded)
|
||||
/* f063770: 3c188007 */ lui $t8,%hi(g_PausableObjs)
|
||||
/* f063774: 90590003 */ lbu $t9,0x3($v0)
|
||||
/* f063778: 0319c021 */ addu $t8,$t8,$t9
|
||||
/* f06377c: 93189884 */ lbu $t8,%lo(g_ObjsPausedWhenBackgrounded)($t8)
|
||||
/* f06377c: 93189884 */ lbu $t8,%lo(g_PausableObjs)($t8)
|
||||
/* f063780: 57000006 */ bnezl $t8,.L0f06379c
|
||||
/* f063784: 860d0002 */ lh $t5,0x2($s0)
|
||||
/* f063788: 0fc1f9d6 */ jal objTick
|
||||
@@ -4417,7 +4471,7 @@ glabel propsTick
|
||||
/* f0637bc: 01b9082a */ slt $at,$t5,$t9
|
||||
/* f0637c0: 5020001c */ beqzl $at,.L0f063834
|
||||
/* f0637c4: 8faf0034 */ lw $t7,0x34($sp)
|
||||
/* f0637c8: 0fc18bbe */ jal propPrependToList2
|
||||
/* f0637c8: 0fc18bbe */ jal propPause
|
||||
/* f0637cc: 02002025 */ or $a0,$s0,$zero
|
||||
/* f0637d0: 10000017 */ b .L0f063830
|
||||
/* f0637d4: 24060005 */ addiu $a2,$zero,0x5
|
||||
@@ -4498,9 +4552,9 @@ glabel propsTick
|
||||
/* f0638dc: 35ee0080 */ ori $t6,$t7,0x80
|
||||
/* f0638e0: a20e003f */ sb $t6,0x3f($s0)
|
||||
/* f0638e4: afa20060 */ sw $v0,0x60($sp)
|
||||
/* f0638e8: 0fc18171 */ jal propRemoveFromCurrentList
|
||||
/* f0638e8: 0fc18171 */ jal propDelist
|
||||
/* f0638ec: 02002025 */ or $a0,$s0,$zero
|
||||
/* f0638f0: 0fc1814e */ jal propAppendToList1
|
||||
/* f0638f0: 0fc1814e */ jal propActivateThisFrame
|
||||
/* f0638f4: 02002025 */ or $a0,$s0,$zero
|
||||
/* f0638f8: 8fb8004c */ lw $t8,0x4c($sp)
|
||||
/* f0638fc: 8fa20060 */ lw $v0,0x60($sp)
|
||||
@@ -5390,7 +5444,7 @@ glabel propsTick
|
||||
/* f062a30: 01b9082a */ slt $at,$t5,$t9
|
||||
/* f062a34: 5020001c */ beqzl $at,.NB0f062aa8
|
||||
/* f062a38: 8faf0034 */ lw $t7,0x34($sp)
|
||||
/* f062a3c: 0fc1885f */ jal propPrependToList2
|
||||
/* f062a3c: 0fc1885f */ jal propPause
|
||||
/* f062a40: 02002025 */ or $a0,$s0,$zero
|
||||
/* f062a44: 10000017 */ beqz $zero,.NB0f062aa4
|
||||
/* f062a48: 24060005 */ addiu $a2,$zero,0x5
|
||||
@@ -5471,9 +5525,9 @@ glabel propsTick
|
||||
/* f062b50: 35ee0080 */ ori $t6,$t7,0x80
|
||||
/* f062b54: a20e003f */ sb $t6,0x3f($s0)
|
||||
/* f062b58: afa20060 */ sw $v0,0x60($sp)
|
||||
/* f062b5c: 0fc17e21 */ jal propRemoveFromCurrentList
|
||||
/* f062b5c: 0fc17e21 */ jal propDelist
|
||||
/* f062b60: 02002025 */ or $a0,$s0,$zero
|
||||
/* f062b64: 0fc17dfe */ jal propAppendToList1
|
||||
/* f062b64: 0fc17dfe */ jal propActivateThisFrame
|
||||
/* f062b68: 02002025 */ or $a0,$s0,$zero
|
||||
/* f062b6c: 8fb8004c */ lw $t8,0x4c($sp)
|
||||
/* f062b70: 8fa20060 */ lw $v0,0x60($sp)
|
||||
@@ -5938,8 +5992,8 @@ glabel propsTick
|
||||
// while (prop < end) {
|
||||
// flags = prop->flags;
|
||||
//
|
||||
// if (flags & PROPFLAG_02) {
|
||||
// flags &= ~PROPFLAG_02;
|
||||
// if (flags & PROPFLAG_ONSCREEN) {
|
||||
// flags &= ~PROPFLAG_ONSCREEN;
|
||||
// }
|
||||
//
|
||||
// if (flags & PROPFLAG_40) {
|
||||
@@ -5959,8 +6013,8 @@ glabel propsTick
|
||||
// while (prop < end) {
|
||||
// flags = prop->flags;
|
||||
//
|
||||
// if (flags & PROPFLAG_02) {
|
||||
// flags &= ~PROPFLAG_02;
|
||||
// if (flags & PROPFLAG_ONSCREEN) {
|
||||
// flags &= ~PROPFLAG_ONSCREEN;
|
||||
// }
|
||||
//
|
||||
// prop->flags = flags;
|
||||
@@ -5970,13 +6024,13 @@ glabel propsTick
|
||||
//
|
||||
// // 294
|
||||
// done = false;
|
||||
// prop = g_Vars.list1head;
|
||||
// prop = g_Vars.activeprops;
|
||||
//
|
||||
// while (!done) {
|
||||
// s16 *rooms;
|
||||
// op = TICKOP_NONE;
|
||||
// next = prop->next;
|
||||
// done = prop->next == g_Vars.list2head;
|
||||
// done = prop->next == g_Vars.pausedprops;
|
||||
//
|
||||
// if (g_Vars.tickmode != TICKMODE_NORMAL) {
|
||||
// score = 1;
|
||||
@@ -6003,13 +6057,13 @@ glabel propsTick
|
||||
// }
|
||||
//
|
||||
// if (score == 0) {
|
||||
// if ((prop->flags & (PROPFLAG_TANGIBLE | PROPFLAG_80)) == (PROPFLAG_TANGIBLE | PROPFLAG_80)) {
|
||||
// if ((prop->flags & (PROPFLAG_ENABLED | PROPFLAG_80)) == (PROPFLAG_ENABLED | PROPFLAG_80)) {
|
||||
// score++;
|
||||
// } else if (prop->forceonetick) {
|
||||
// score++;
|
||||
// prop->forceonetick = false;
|
||||
// } else if (prop->forcetick) {
|
||||
// score++;
|
||||
// prop->forcetick = false;
|
||||
// } else if (prop->unk3f_02) {
|
||||
// score++;
|
||||
// } else {
|
||||
// rooms = prop->rooms;
|
||||
//
|
||||
@@ -6048,7 +6102,7 @@ glabel propsTick
|
||||
// }
|
||||
//
|
||||
// // 4a8
|
||||
// prop->unk3e = 0;
|
||||
// prop->backgroundedframes = 0;
|
||||
//
|
||||
// if (prop->type == PROPTYPE_CHR) {
|
||||
// struct chrdata *chr = prop->chr;
|
||||
@@ -6126,13 +6180,16 @@ glabel propsTick
|
||||
// } else if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON || prop->type == PROPTYPE_DOOR) {
|
||||
// struct defaultobj *obj = prop->obj;
|
||||
//
|
||||
// if (!g_ObjsPausedWhenBackgrounded[obj->type]) {
|
||||
// if (!g_PausableObjs[obj->type]) {
|
||||
// op = objTick(prop);
|
||||
// } else if (prop->timetoregen <= 0) {
|
||||
// prop->unk3e++;
|
||||
// // The prop does not regenerate. If we've done a full
|
||||
// // cycle of propstates while backgrounded and the prop
|
||||
// // hasn't moved to the foreground, pause it.
|
||||
// prop->backgroundedframes++;
|
||||
//
|
||||
// if (prop->unk3e > g_Vars.numpropstates - 1) {
|
||||
// propPrependToList2(prop);
|
||||
// if (prop->backgroundedframes > g_Vars.numpropstates - 1) {
|
||||
// propPause(prop);
|
||||
// op = TICKOP_5;
|
||||
// }
|
||||
// }
|
||||
@@ -6171,14 +6228,14 @@ glabel propsTick
|
||||
// } else {
|
||||
// // Use the current prop->next value
|
||||
// sp60 = prop->next;
|
||||
// done = sp60 == g_Vars.list2head;
|
||||
// done = sp60 == g_Vars.pausedprops;
|
||||
//
|
||||
// if (op == TICKOP_RETICK) {
|
||||
// prop->lastupdateframe = 0xffff;
|
||||
// prop->forcetick = true;
|
||||
// prop->forceonetick = true;
|
||||
//
|
||||
// propRemoveFromCurrentList(prop);
|
||||
// propAppendToList1(prop);
|
||||
// propDelist(prop);
|
||||
// propActivateThisFrame(prop);
|
||||
//
|
||||
// if (done) {
|
||||
// sp60 = prop;
|
||||
@@ -6223,9 +6280,9 @@ glabel propsTick
|
||||
//
|
||||
// // 9f0
|
||||
// if (i != 0) {
|
||||
// prop = g_Vars.list1head;
|
||||
// prop = g_Vars.activeprops;
|
||||
//
|
||||
// while (prop != g_Vars.list2head) {
|
||||
// while (prop != g_Vars.pausedprops) {
|
||||
// if (prop->propstateindex == mostindex && prop->backgrounded == 1 && prop->type != PROPTYPE_CHR) {
|
||||
// prop->propstateindex = leastindex;
|
||||
// i--;
|
||||
@@ -6260,9 +6317,9 @@ glabel propsTick
|
||||
// i = (g_Vars.propstates[(s32)mostindex].foregroundpropcount - g_Vars.propstates[(s32)leastindex].foregroundpropcount) >> 1;
|
||||
//
|
||||
// if (i != 0) {
|
||||
// prop = g_Vars.list1head;
|
||||
// prop = g_Vars.activeprops;
|
||||
//
|
||||
// while (prop != g_Vars.list2head) {
|
||||
// while (prop != g_Vars.pausedprops) {
|
||||
// if (mostindex == prop->propstateindex && prop->backgrounded == 0 && prop->type != PROPTYPE_CHR) {
|
||||
// prop->propstateindex = leastindex;
|
||||
// i--;
|
||||
@@ -6296,9 +6353,9 @@ glabel propsTick
|
||||
// i = (g_Vars.propstates[(s32)mostindex].chrpropcount - g_Vars.propstates[(s32)leastindex].chrpropcount) >> 1;
|
||||
//
|
||||
// if (i != 0) {
|
||||
// prop = g_Vars.list1head;
|
||||
// prop = g_Vars.activeprops;
|
||||
//
|
||||
// while (prop != g_Vars.list2head) {
|
||||
// while (prop != g_Vars.pausedprops) {
|
||||
// if (mostindex == prop->propstateindex && prop->backgrounded == 1 && prop->type == PROPTYPE_CHR) {
|
||||
// prop->propstateindex = leastindex;
|
||||
// i--;
|
||||
@@ -6332,9 +6389,9 @@ glabel propsTick
|
||||
// i = (g_Vars.propstates[(s32)mostindex].foregroundchrpropcount - g_Vars.propstates[(s32)leastindex].foregroundchrpropcount) >> 1;
|
||||
//
|
||||
// if (i != 0) {
|
||||
// prop = g_Vars.list1head;
|
||||
// prop = g_Vars.activeprops;
|
||||
//
|
||||
// while (prop != g_Vars.list2head) {
|
||||
// while (prop != g_Vars.pausedprops) {
|
||||
// if (mostindex == prop->propstateindex && prop->backgrounded == 0 && prop->type == PROPTYPE_CHR) {
|
||||
// prop->propstateindex = leastindex;
|
||||
// i--;
|
||||
@@ -7047,7 +7104,7 @@ void farsightChooseTarget(void)
|
||||
struct prop *prop = g_ChrSlots[i].prop;
|
||||
|
||||
if (prop && prop->chr) {
|
||||
if (prop->type == PROPTYPE_CHR && (prop->flags & PROPFLAG_TANGIBLE)
|
||||
if (prop->type == PROPTYPE_CHR && (prop->flags & PROPFLAG_ENABLED)
|
||||
|| (prop->type == PROPTYPE_PLAYER && propGetPlayerNum(prop) != g_Vars.currentplayernum)) {
|
||||
struct chrdata *chr = prop->chr;
|
||||
|
||||
@@ -7137,7 +7194,7 @@ void autoaimTick(void)
|
||||
aimpos[0] = (threat->x2 + threat->x1) / 2;
|
||||
aimpos[1] = (threat->y2 + threat->y1) / 2;
|
||||
|
||||
if (bestprop->flags & PROPFLAG_02) {
|
||||
if (bestprop->flags & PROPFLAG_ONSCREEN) {
|
||||
struct defaultobj *obj = bestprop->obj;
|
||||
Mtxf *mtx = func0001a60c(obj->model);
|
||||
struct coord spac;
|
||||
@@ -7212,10 +7269,10 @@ void autoaimTick(void)
|
||||
f32 sp84[2];
|
||||
struct chrdata *chr;
|
||||
f32 sp78[2];
|
||||
struct prop **ptr = g_Vars.unk00034c - 1;
|
||||
struct prop **ptr = g_Vars.endenabledprops - 1;
|
||||
|
||||
// Iterate tangible list in reverse
|
||||
while (ptr >= g_Vars.tangibleprops) {
|
||||
while (ptr >= g_Vars.enabledprops) {
|
||||
prop = *ptr;
|
||||
|
||||
if (prop && prop->chr) {
|
||||
|
||||
+27
-27
@@ -2363,7 +2363,7 @@ glabel func0f06803c
|
||||
|
||||
struct defaultobj *objFindByPadNum(s32 padnum)
|
||||
{
|
||||
struct prop *prop = g_Vars.list1head;
|
||||
struct prop *prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
if (prop->type == PROPTYPE_OBJ) {
|
||||
@@ -5333,7 +5333,7 @@ struct prop *objInitialise(struct defaultobj *obj, struct modelfiledata *filedat
|
||||
g_ScenarioData.htb.token = prop;
|
||||
}
|
||||
|
||||
prop->unk3f_02 = true;
|
||||
prop->forcetick = true;
|
||||
obj->flags |= OBJFLAG_INVINCIBLE | OBJFLAG_00400000;
|
||||
obj->flags2 |= OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000;
|
||||
} else if (weapon->weaponnum == WEAPON_DATAUPLINK) {
|
||||
@@ -5341,7 +5341,7 @@ struct prop *objInitialise(struct defaultobj *obj, struct modelfiledata *filedat
|
||||
g_ScenarioData.htm.uplink = prop;
|
||||
}
|
||||
|
||||
prop->unk3f_02 = true;
|
||||
prop->forcetick = true;
|
||||
obj->flags |= OBJFLAG_INVINCIBLE | OBJFLAG_00400000;
|
||||
obj->flags2 |= OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000;
|
||||
}
|
||||
@@ -6357,8 +6357,8 @@ void objRemove2(struct defaultobj *obj, bool freeprop, bool regen)
|
||||
modelFree(obj->model);
|
||||
|
||||
if (freeprop) {
|
||||
propRemoveFromCurrentList(obj->prop);
|
||||
propHide(obj->prop);
|
||||
propDelist(obj->prop);
|
||||
propDisable(obj->prop);
|
||||
propFree(obj->prop);
|
||||
}
|
||||
|
||||
@@ -11659,9 +11659,9 @@ glabel func0f06ef44
|
||||
/* f06efa0: 37280040 */ ori $t0,$t9,0x40
|
||||
/* f06efa4: 0fc19711 */ jal func0f065c44
|
||||
/* f06efa8: ae080040 */ sw $t0,0x40($s0)
|
||||
/* f06efac: 0fc18171 */ jal propRemoveFromCurrentList
|
||||
/* f06efac: 0fc18171 */ jal propDelist
|
||||
/* f06efb0: 02202025 */ or $a0,$s1,$zero
|
||||
/* f06efb4: 0fc180c0 */ jal propHide
|
||||
/* f06efb4: 0fc180c0 */ jal propDisable
|
||||
/* f06efb8: 02202025 */ or $a0,$s1,$zero
|
||||
/* f06efbc: 8fa90180 */ lw $t1,0x180($sp)
|
||||
/* f06efc0: 8e0a0018 */ lw $t2,0x18($s0)
|
||||
@@ -15366,7 +15366,7 @@ void func0f0706f8(struct prop *prop, bool arg1)
|
||||
if (obj->hidden & OBJHFLAG_REAPABLE) {
|
||||
objRemove2(obj, true, obj->hidden2 & OBJH2FLAG_CANREGEN);
|
||||
} else {
|
||||
prop->flags &= ~PROPFLAG_02;
|
||||
prop->flags &= ~PROPFLAG_ONSCREEN;
|
||||
func0f07063c(prop, arg1);
|
||||
|
||||
// Recurse into children
|
||||
@@ -46244,7 +46244,7 @@ u32 func0f07e474(struct prop *prop)
|
||||
if (obj->damage == 0 && (obj->hidden2 & OBJH2FLAG_40) == 0) {
|
||||
if (obj->flags & OBJFLAG_00008000) {
|
||||
func0f065c44(prop);
|
||||
propRemoveFromCurrentList(prop);
|
||||
propDelist(prop);
|
||||
obj->hidden &= ~OBJHFLAG_00000800;
|
||||
cmdoffset = setupGetCommandOffset(prop);
|
||||
|
||||
@@ -46259,7 +46259,7 @@ u32 func0f07e474(struct prop *prop)
|
||||
silent = true;
|
||||
}
|
||||
} else {
|
||||
propShow(prop);
|
||||
propEnable(prop);
|
||||
func0f0923d4(obj);
|
||||
obj->hidden &= ~OBJHFLAG_00000800;
|
||||
}
|
||||
@@ -46327,7 +46327,7 @@ s32 objTick(struct prop *prop)
|
||||
if (obj->hidden & OBJHFLAG_00000008) {
|
||||
obj->hidden &= ~OBJHFLAG_00000008;
|
||||
} else if ((obj->hidden & OBJHFLAG_AIRBORNE) && (obj->projectile->flags & PROJECTILEFLAG_00000800) == 0) {
|
||||
prop->flags &= ~PROPFLAG_02;
|
||||
prop->flags &= ~PROPFLAG_ONSCREEN;
|
||||
obj->hidden |= OBJHFLAG_00000008;
|
||||
return TICKOP_RETICK;
|
||||
}
|
||||
@@ -46646,7 +46646,7 @@ s32 objTick(struct prop *prop)
|
||||
}
|
||||
}
|
||||
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_02;
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_ONSCREEN;
|
||||
|
||||
if (obj->type == OBJTYPE_FAN) {
|
||||
fanUpdateModel(prop);
|
||||
@@ -46670,7 +46670,7 @@ s32 objTick(struct prop *prop)
|
||||
child = next;
|
||||
}
|
||||
} else {
|
||||
prop->flags &= ~PROPFLAG_02;
|
||||
prop->flags &= ~PROPFLAG_ONSCREEN;
|
||||
func0f07063c(prop, sp572);
|
||||
child = prop->child;
|
||||
|
||||
@@ -46699,7 +46699,7 @@ s32 objTick(struct prop *prop)
|
||||
|
||||
Gfx *propsRenderBeams(Gfx *gdl)
|
||||
{
|
||||
struct prop *prop = g_Vars.list1head;
|
||||
struct prop *prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
if (prop->type == PROPTYPE_CHR) {
|
||||
@@ -48663,7 +48663,7 @@ glabel var7f1aa824
|
||||
|
||||
void objRenderProp(struct prop *prop, struct modelrenderdata *renderdata, bool withalpha)
|
||||
{
|
||||
if (prop->flags & PROPFLAG_02) {
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
struct defaultobj *obj = prop->obj;
|
||||
struct model *model = obj->model;
|
||||
bool sp6c;
|
||||
@@ -54179,9 +54179,9 @@ glabel var7f1aa978
|
||||
.L0f083cb4:
|
||||
/* f083cb4: 0fc20be2 */ jal objDetach
|
||||
/* f083cb8: 8fa40140 */ lw $a0,0x140($sp)
|
||||
/* f083cbc: 0fc1812f */ jal propPrependToList1
|
||||
/* f083cbc: 0fc1812f */ jal propActivate
|
||||
/* f083cc0: 8fa40140 */ lw $a0,0x140($sp)
|
||||
/* f083cc4: 0fc180bc */ jal propShow
|
||||
/* f083cc4: 0fc180bc */ jal propEnable
|
||||
/* f083cc8: 8fa40140 */ lw $a0,0x140($sp)
|
||||
/* f083ccc: 8fa40140 */ lw $a0,0x140($sp)
|
||||
/* f083cd0: c7b20120 */ lwc1 $f18,0x120($sp)
|
||||
@@ -55152,9 +55152,9 @@ glabel var7f1aa978
|
||||
.L0f083cb4:
|
||||
/* f083cb4: 0fc20be2 */ jal objDetach
|
||||
/* f083cb8: 8fa40140 */ lw $a0,0x140($sp)
|
||||
/* f083cbc: 0fc1812f */ jal propPrependToList1
|
||||
/* f083cbc: 0fc1812f */ jal propActivate
|
||||
/* f083cc0: 8fa40140 */ lw $a0,0x140($sp)
|
||||
/* f083cc4: 0fc180bc */ jal propShow
|
||||
/* f083cc4: 0fc180bc */ jal propEnable
|
||||
/* f083cc8: 8fa40140 */ lw $a0,0x140($sp)
|
||||
/* f083ccc: 8fa40140 */ lw $a0,0x140($sp)
|
||||
/* f083cd0: c7b20120 */ lwc1 $f18,0x120($sp)
|
||||
@@ -57247,7 +57247,7 @@ void func0f084f64(struct defaultobj *obj)
|
||||
Mtxf *sp7c;
|
||||
Mtxf matrix;
|
||||
|
||||
if (prop->flags & PROPFLAG_02) {
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
rodata = modelGetPartRodata(model->filedata, 2);
|
||||
sp7c = func0001a5cc(model, modelGetPart(model->filedata, 1), 0);
|
||||
func00015be4(currentPlayerGetUnk174c(), sp7c, &matrix);
|
||||
@@ -63644,7 +63644,7 @@ glabel var7f1aae84
|
||||
|
||||
bool func0f0899dc(struct prop *prop, struct coord *arg1, f32 *arg2, f32 *arg3)
|
||||
{
|
||||
if (prop->flags & PROPFLAG_02) {
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
struct defaultobj *obj = prop->obj;
|
||||
Mtxf *matrix = func0001a60c(obj->model);
|
||||
|
||||
@@ -64999,7 +64999,7 @@ struct weaponobj *func0f08aa70(s32 weaponnum, struct prop *prop)
|
||||
|
||||
struct weaponobj *weaponFindThrown(s32 weaponnum)
|
||||
{
|
||||
struct prop *prop = g_Vars.list1head;
|
||||
struct prop *prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
struct weaponobj *weapon = func0f08aa70(weaponnum, prop);
|
||||
@@ -65085,7 +65085,7 @@ void chrsTriggerProxies(void)
|
||||
&& (chr->hidden & CHRHFLAG_00000200)
|
||||
#endif
|
||||
&& chr->prop
|
||||
&& (chr->prop->flags & PROPFLAG_TANGIBLE)
|
||||
&& (chr->prop->flags & PROPFLAG_ENABLED)
|
||||
&& !chrIsDead(chr)) {
|
||||
chrCalculatePosition(chr, &pos);
|
||||
coordTriggerProxies(&pos, true);
|
||||
@@ -65360,7 +65360,7 @@ struct autogunobj *laptopDeploy(s32 modelnum, struct gset *gset, struct chrdata
|
||||
laptop->ymaxright = -12.56f;
|
||||
laptop->maxspeed = PALUPF(0.0697f);
|
||||
|
||||
prop->unk3f_02 = true;
|
||||
prop->forcetick = true;
|
||||
|
||||
laptop->base.hidden |= OBJHFLAG_TAGGED;
|
||||
laptop->base.flags |= OBJFLAG_00080000 | OBJFLAG_01000000 | OBJFLAG_20000000;
|
||||
@@ -69415,7 +69415,7 @@ bool doorTestForInteract(struct prop *prop)
|
||||
|
||||
if ((door->base.flags & OBJFLAG_CANNOT_ACTIVATE) == 0
|
||||
&& door->maxfrac > 0
|
||||
&& (prop->flags & PROPFLAG_02)) {
|
||||
&& (prop->flags & PROPFLAG_ONSCREEN)) {
|
||||
bool maybe = false;
|
||||
bool usingeyespy = g_Vars.currentplayer->eyespy && g_Vars.currentplayer->eyespy->active;
|
||||
struct prop *playerprop = usingeyespy ? g_Vars.currentplayer->eyespy->prop : g_Vars.currentplayer->prop;
|
||||
@@ -69906,11 +69906,11 @@ void alarmTick(void)
|
||||
|
||||
void func0f091030(void)
|
||||
{
|
||||
struct prop *prop = g_Vars.list1head;
|
||||
struct prop *prop = g_Vars.activeprops;
|
||||
|
||||
while (prop) {
|
||||
if (prop->type == PROPTYPE_OBJ
|
||||
&& (prop->flags & (PROPFLAG_02 | PROPFLAG_40 | PROPFLAG_80)) == 0
|
||||
&& (prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) == 0
|
||||
&& (prop->obj->hidden2 & OBJH2FLAG_40)
|
||||
&& (prop->obj->hidden2 & OBJH2FLAG_80)) {
|
||||
objRemove(prop->obj, true);
|
||||
|
||||
+1
-1
@@ -421,7 +421,7 @@ Gfx *radarRender(Gfx *gdl)
|
||||
|
||||
Gfx *radarRenderRTrackedProps(Gfx *gdl)
|
||||
{
|
||||
struct prop *prop = g_Vars.list1head;
|
||||
struct prop *prop = g_Vars.activeprops;
|
||||
struct coord *playerpos = &g_Vars.currentplayer->prop->pos;
|
||||
struct defaultobj *obj;
|
||||
struct chrdata *chr;
|
||||
|
||||
@@ -12,8 +12,8 @@ void smokeReset(void)
|
||||
if (g_Smokes) {
|
||||
for (i = 0; i < g_MaxSmokes; i++) {
|
||||
if (g_Smokes[i].prop) {
|
||||
propRemoveFromCurrentList(g_Smokes[i].prop);
|
||||
propHide(g_Smokes[i].prop);
|
||||
propDelist(g_Smokes[i].prop);
|
||||
propDisable(g_Smokes[i].prop);
|
||||
propFree(g_Smokes[i].prop);
|
||||
|
||||
g_Smokes[i].prop = NULL;
|
||||
|
||||
@@ -1188,9 +1188,9 @@ glabel smokeCreate
|
||||
.L0f12e3f8:
|
||||
/* f12e3f8: 02397021 */ addu $t6,$s1,$t9
|
||||
/* f12e3fc: a5c60028 */ sh $a2,0x28($t6)
|
||||
/* f12e400: 0fc1814e */ jal propAppendToList1
|
||||
/* f12e400: 0fc1814e */ jal propActivateThisFrame
|
||||
/* f12e404: 02202025 */ or $a0,$s1,$zero
|
||||
/* f12e408: 0fc180bc */ jal propShow
|
||||
/* f12e408: 0fc180bc */ jal propEnable
|
||||
/* f12e40c: 02202025 */ or $a0,$s1,$zero
|
||||
/* f12e410: 8faf002c */ lw $t7,0x2c($sp)
|
||||
/* f12e414: 00107040 */ sll $t6,$s0,0x1
|
||||
@@ -1270,8 +1270,8 @@ glabel smokeCreate
|
||||
// }
|
||||
//
|
||||
// prop->rooms[i] = -1;
|
||||
// propAppendToList1(prop);
|
||||
// propShow(prop);
|
||||
// propActivateThisFrame(prop);
|
||||
// propEnable(prop);
|
||||
//
|
||||
// smoke->prop = prop;
|
||||
// smoke->age = 0;
|
||||
@@ -2045,7 +2045,7 @@ u32 smokeTick(struct prop *prop)
|
||||
prop->z -= 100;
|
||||
}
|
||||
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_02;
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_ONSCREEN;
|
||||
|
||||
return TICKOP_NONE;
|
||||
}
|
||||
|
||||
+16
-11
@@ -1613,7 +1613,7 @@
|
||||
/**
|
||||
* Sets a flag on the object's flags property (object struct offset 0x08).
|
||||
*
|
||||
* Expects an OBJECTFLAG constant.
|
||||
* Expects an OBJFLAG constant.
|
||||
*/
|
||||
#define set_object_flag(object, objectflag) \
|
||||
mkshort(0x00aa), \
|
||||
@@ -1644,7 +1644,7 @@
|
||||
/**
|
||||
* Sets a flag on the object's flags2 property (object struct offset 0x0c).
|
||||
*
|
||||
* Expects an OBJECTFLAG2 constant.
|
||||
* Expects an OBJFLAG2 constant.
|
||||
*/
|
||||
#define set_object_flag2(object, objectflag2) \
|
||||
mkshort(0x00ad), \
|
||||
@@ -2498,37 +2498,42 @@
|
||||
label,
|
||||
|
||||
/**
|
||||
* Shows the given chr.
|
||||
* Enables the given chr. The chr will become visible, will tick and will be
|
||||
* considered in collision checks.
|
||||
*/
|
||||
#define show_chr(chr) \
|
||||
#define enable_chr(chr) \
|
||||
mkshort(0x0114), \
|
||||
chr,
|
||||
|
||||
/**
|
||||
* Hides the given chr.
|
||||
* Disables the given chr. Disabled chrs are invisible, do not tick and are not
|
||||
* considered in collision checks. Disabled chrs can still be damaged by
|
||||
* explosives, at which point they become enabled (and die) automatically.
|
||||
*/
|
||||
#define hide_chr(chr) \
|
||||
#define disable_chr(chr) \
|
||||
mkshort(0x0115), \
|
||||
chr,
|
||||
|
||||
/**
|
||||
* Shows the given object.
|
||||
* Enables the given object. The object will become visible, will tick and will
|
||||
* be considered in collision checks.
|
||||
*/
|
||||
#define show_object(object) \
|
||||
#define enable_object(object) \
|
||||
mkshort(0x0116), \
|
||||
object,
|
||||
|
||||
/**
|
||||
* Hides the given object.
|
||||
* Disables the given object. Disabled object are invisible, do not tick and are
|
||||
* not considered in collision checks.
|
||||
*/
|
||||
#define hide_object(object) \
|
||||
#define disable_object(object) \
|
||||
mkshort(0x0117), \
|
||||
object,
|
||||
|
||||
/**
|
||||
* Sets a flag on the object's flags3 property (object struct offset 0x10).
|
||||
*
|
||||
* Expects an OBJECTFLAG3 constant.
|
||||
* Expects an OBJFLAG3 constant.
|
||||
*/
|
||||
#define set_object_flag3(object, objectflag3) \
|
||||
mkshort(0x0118), \
|
||||
|
||||
@@ -3185,10 +3185,10 @@
|
||||
#define PROJECTILEFLAG_FREE 0x80000000
|
||||
|
||||
#define PROPFLAG_01 0x01
|
||||
#define PROPFLAG_02 0x02
|
||||
#define PROPFLAG_TANGIBLE 0x04
|
||||
#define PROPFLAG_ONSCREEN 0x02
|
||||
#define PROPFLAG_ENABLED 0x04
|
||||
#define PROPFLAG_08 0x08
|
||||
#define PROPFLAG_10 0x10
|
||||
#define PROPFLAG_DONTPAUSE 0x10
|
||||
#define PROPFLAG_20 0x20
|
||||
#define PROPFLAG_40 0x40
|
||||
#define PROPFLAG_80 0x80
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
void roomMovePropsToList1(u32 roomnum, bool tintedglassonly);
|
||||
void roomUnpauseProps(u32 roomnum, bool tintedglassonly);
|
||||
void func0f157e94(s32 room, s32 arg1, struct screenbox *arg2);
|
||||
void func0f158108(s32 roomnum, u8 *arg1, u8 *arg2);
|
||||
struct var800a4640_00 *func0f158140(s32 roomnum);
|
||||
|
||||
@@ -277,10 +277,10 @@
|
||||
/*0x0111*/ bool aiSetCameraAnimation(void);
|
||||
/*0x0112*/ bool aiObjectDoAnimation(void);
|
||||
/*0x0113*/ bool aiIfInCutscene(void);
|
||||
/*0x0114*/ bool aiShowChr(void);
|
||||
/*0x0115*/ bool aiHideChr(void);
|
||||
/*0x0116*/ bool aiShowObj(void);
|
||||
/*0x0117*/ bool aiHideObj(void);
|
||||
/*0x0114*/ bool aiEnableChr(void);
|
||||
/*0x0115*/ bool aiDisableChr(void);
|
||||
/*0x0116*/ bool aiEnableObj(void);
|
||||
/*0x0117*/ bool aiDisableObj(void);
|
||||
/*0x0118*/ bool aiSetObjFlag3(void);
|
||||
/*0x0119*/ bool aiUnsetObjFlag3(void);
|
||||
/*0x011a*/ bool aiIfObjHasFlag3(void);
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
extern f32 var80069880;
|
||||
|
||||
void func0f0601b0(void);
|
||||
void propShow(struct prop *prop);
|
||||
void propHide(struct prop *prop);
|
||||
void propEnable(struct prop *prop);
|
||||
void propDisable(struct prop *prop);
|
||||
struct prop *propAllocate(void);
|
||||
void propFree(struct prop *prop);
|
||||
void propPrependToList1(struct prop *prop);
|
||||
void propAppendToList1(struct prop *prop);
|
||||
void propRemoveFromCurrentList(struct prop *prop);
|
||||
void propActivate(struct prop *prop);
|
||||
void propActivateThisFrame(struct prop *prop);
|
||||
void propDelist(struct prop *prop);
|
||||
void propReparent(struct prop *mover, struct prop *adopter);
|
||||
void propDetach(struct prop *prop);
|
||||
Gfx *propRender(Gfx *gdl, struct prop *prop, bool withalpha);
|
||||
@@ -31,8 +31,8 @@ void propExecuteTickOperation(struct prop *prop, s32 op);
|
||||
struct prop *currentPlayerFindPropForInteract(bool eyespy);
|
||||
void func0f062dd0(void);
|
||||
bool currentPlayerInteract(bool eyespy);
|
||||
void propPrependToList2(struct prop *prop);
|
||||
void propMoveFromList2To1(struct prop *prop);
|
||||
void propPause(struct prop *prop);
|
||||
void propUnpause(struct prop *prop);
|
||||
void propsTick(u32 islastplayer);
|
||||
void func0f063dcc(void);
|
||||
void propSetCollisionsEnabled(struct prop *prop, bool enable);
|
||||
|
||||
+32
-22
@@ -159,14 +159,14 @@ struct g_vars {
|
||||
/*00032c*/ bool enableslopes;
|
||||
/*000330*/ u32 padrandomroutes;
|
||||
/*000334*/ s32 maxprops;
|
||||
/*000338*/ struct prop *props; // pointer to array
|
||||
/*00033c*/ struct prop *list1head;
|
||||
/*000340*/ struct prop *list1tail; // next pointer points to list2head
|
||||
/*000344*/ struct prop *freeprops;
|
||||
/*000348*/ struct prop **tangibleprops;
|
||||
/*00034c*/ struct prop **unk00034c;
|
||||
/*000338*/ struct prop *props; // pointer to array of structs
|
||||
/*00033c*/ struct prop *activeprops; // head of a doubly linked list
|
||||
/*000340*/ struct prop *activepropstail; // next pointer points to pausedprops
|
||||
/*000344*/ struct prop *freeprops; // head of a singularly linked list
|
||||
/*000348*/ struct prop **enabledprops;
|
||||
/*00034c*/ struct prop **endenabledprops;
|
||||
/*000350*/ struct prop *unk000350;
|
||||
/*000354*/ struct prop *list2head; // prev pointer points to list1tail
|
||||
/*000354*/ struct prop *pausedprops; // head of a doubly linked list, prev pointer points to activepropstail
|
||||
/*000358*/ u8 numpropstates;
|
||||
/*000359*/ u8 allocstateindex;
|
||||
/*00035a*/ u8 runstateindex;
|
||||
@@ -413,15 +413,11 @@ struct prop {
|
||||
/*0x3a*/ u16 propupdate240;
|
||||
/*0x3c*/ u8 propupdate60err;
|
||||
/*0x3d*/ u8 propstateindex;
|
||||
/*0x3e*/ u8 unk3e;
|
||||
/*0x3f*/ u8 forcetick : 1;
|
||||
/*0x3e*/ u8 backgroundedframes;
|
||||
/*0x3f*/ u8 forceonetick : 1;
|
||||
/*0x3f*/ u8 backgrounded : 1;
|
||||
/*0x3f*/ u8 unk3f_02 : 1;
|
||||
/*0x3f*/ u8 inlist1 : 1;
|
||||
/*0x3f*/ u8 unk3f_04 : 1;
|
||||
/*0x3f*/ u8 unk3f_05 : 1;
|
||||
/*0x3f*/ u8 unk3f_06 : 1;
|
||||
/*0x3f*/ u8 unk3f_07 : 1;
|
||||
/*0x3f*/ u8 forcetick : 1;
|
||||
/*0x3f*/ u8 active : 1;
|
||||
/*0x40*/ struct var800a41b0 *unk40;
|
||||
/*0x44*/ struct var800a41b0 *unk44;
|
||||
};
|
||||
@@ -2121,10 +2117,24 @@ struct gunheld {
|
||||
};
|
||||
|
||||
struct playerbond {
|
||||
|
||||
// unk00.x = look vector x (-1 to +1)
|
||||
// unk00.y = always 0?
|
||||
// unk00.z = look vector z (-1 to +1)
|
||||
/*0x0338 0x036c*/ struct coord unk00;
|
||||
/*0x0344 0x0378*/ f32 width;
|
||||
|
||||
/*0x0344 0x0378*/ f32 width; // always 30?
|
||||
|
||||
/*0x0348 0x037c*/ struct coord unk10;
|
||||
|
||||
// unk1c.x = affected by both left/right and up/down looking
|
||||
// unk1c.y = vertical look vector (-1 for down, 1 for up)
|
||||
// unk1c.z = affected by both left/right and up/down looking
|
||||
/*0x0354 0x0388*/ struct coord unk1c;
|
||||
|
||||
// unk28.x = affected by both horiz and vertical angle
|
||||
// unk28.y = 0 when looking up or down, .999 when looking horizontal
|
||||
// unk28.z = pos.z
|
||||
/*0x0360 0x0394*/ struct coord unk28;
|
||||
};
|
||||
|
||||
@@ -2469,7 +2479,7 @@ struct gunctrl {
|
||||
|
||||
struct player {
|
||||
/*0x0000*/ s32 cameramode;
|
||||
/*0x0004*/ struct coord memcampos;
|
||||
/*0x0004*/ struct coord memcampos; // Room that the camera is in (differs from the player's room during cutscenes and Slayer rocket)
|
||||
/*0x0010*/ u16 visionmode;
|
||||
/*0x0014*/ s32 memcamroom;
|
||||
/*0x0018*/ struct coord eraserpos;
|
||||
@@ -2477,7 +2487,7 @@ struct player {
|
||||
/*0x0028*/ u32 eraserbgdist;
|
||||
/*0x002c*/ u32 eraserdepth;
|
||||
/*0x0030*/ bool isfalling;
|
||||
/*0x0034*/ s32 fallstart;
|
||||
/*0x0034*/ s32 fallstart; // lvframe60 when player started falling
|
||||
/*0x0038*/ struct coord globaldrawworldoffset;
|
||||
/*0x0044*/ struct coord globaldrawcameraoffset;
|
||||
/*0x0050*/ struct coord globaldrawworldbgoffset;
|
||||
@@ -2493,9 +2503,9 @@ struct player {
|
||||
|
||||
// These crouch fields are related to recovering after a fall - not actual crouching
|
||||
/*0x0088*/ f32 sumcrouch;
|
||||
/*0x008c*/ f32 crouchheight;
|
||||
/*0x0090*/ s32 crouchtime240;
|
||||
/*0x0094*/ f32 crouchfall;
|
||||
/*0x008c*/ f32 crouchheight; // Negative, is Y offset to regular standing height
|
||||
/*0x0090*/ s32 crouchtime240; // Set to 60 when landing, counts down
|
||||
/*0x0094*/ f32 crouchfall; // -90 when slowing the descent, increments back to 0 while returning to stand
|
||||
|
||||
/*0x0098*/ s32 swaypos;
|
||||
/*0x009c*/ f32 swayoffset;
|
||||
@@ -2558,7 +2568,7 @@ struct player {
|
||||
/*0x016c*/ f32 speedstrafe;
|
||||
/*0x0170*/ f32 speedforwards; // range -1 to 1
|
||||
/*0x0174*/ f32 speedboost; // speed multiplier - ranges from 1 to 1.25 - kicks in after 3 seconds of full speed
|
||||
/*0x0178*/ u32 speedmaxtime60; // amount of time player has held full forward speed - 60 is 1 second
|
||||
/*0x0178*/ u32 speedmaxtime60; // amount of time player has held full forward speed
|
||||
/*0x017c*/ f32 bondshotspeed[3];
|
||||
/*0x0188*/ f32 bondfadetime60;
|
||||
/*0x018c*/ f32 bondfadetimemax60;
|
||||
|
||||
Reference in New Issue
Block a user