Rename prop list symbols

This commit is contained in:
Ryan Dwyer
2021-06-02 12:13:16 +10:00
parent 82184c5d9f
commit b2d967f339
52 changed files with 1267 additions and 1195 deletions
+118 -118
View File
@@ -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
};
+3 -3
View File
@@ -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
+8 -8
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+6 -6
View File
@@ -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
View File
@@ -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)
+4 -4
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+9 -9
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+4 -4
View File
@@ -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,
+21 -21
View File
@@ -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);
// }
//
+4 -4
View File
@@ -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;
}
+2 -2
View File
@@ -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;
+6 -6
View File
@@ -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
View File
@@ -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;
+8 -8
View File
@@ -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) {
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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);
}
}
+4 -4
View File
@@ -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;
+3 -3
View File
@@ -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];
}
}
+1 -1
View File
@@ -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) {
+5 -5
View File
@@ -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;
}
+1 -1
View File
@@ -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
View File
@@ -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) {
+4 -4
View File
@@ -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)
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+2 -2
View File
@@ -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;
+5 -5
View File
@@ -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
View File
@@ -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), \
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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);
+4 -4
View File
@@ -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 -7
View File
@@ -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
View File
@@ -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;