sm64pc/include/surface_terrains.inc

222 lines
12 KiB
SQL

# Surface Types
.set SURFACE_DEFAULT, 0x0000 # Environment default
.set SURFACE_BURNING, 0x0001 # Lava / Frostbite (in SL), but is used mostly for Lava
.set SURFACE_0004, 0x0004 # Unused, has no function and has parameters
.set SURFACE_HANGABLE, 0x0005 # Ceiling that Mario can climb on
.set SURFACE_SLOW, 0x0009 # Slow down Mario, unused
.set SURFACE_DEATH_PLANE, 0x000A # Death floor
.set SURFACE_CLOSE_CAMERA, 0x000B # Close camera
.set SURFACE_WATER, 0x000D # Water, has no action, used on some waterboxes below
.set SURFACE_WATER_FLOWING, 0x000E # Water (flowing), has parameters
.set SURFACE_INTANGIBLE, 0x0012 # Intangible (Separates BBH mansion from merry-go-round, for room usage)
.set SURFACE_VERY_SLIPPERY, 0x0013 # Very slippery, mostly used for slides
.set SURFACE_SLIPPERY, 0x0014 # Slippery
.set SURFACE_NO_SLIPPERY, 0x0015 # Non-slippery, climbable
.set SURFACE_TTM_VINES, 0x0016 # TTM vines, has no action defined
.set SURFACE_MGR_MUSIC, 0x001A # Plays the Merry go round music, see handle_merry_go_round_music in bbh_merry_go_round.inc.c for more details
.set SURFACE_INST_WARP_1B, 0x001B # Instant warp to another area, used to warp between areas in WDW and the endless stairs to warp back
.set SURFACE_INST_WARP_1C, 0x001C # Instant warp to another area, used to warp between areas in WDW
.set SURFACE_INST_WARP_1D, 0x001D # Instant warp to another area, used to warp between areas in DDD, SSL and TTM
.set SURFACE_INST_WARP_1E, 0x001E # Instant warp to another area, used to warp between areas in DDD, SSL and TTM
.set SURFACE_QUICKSAND_21, 0x0021 # Shallow Quicksand (depth of 10 units)
.set SURFACE_QUICKSAND_22, 0x0022 # Quicksand (lethal, slow, depth of 160 units)
.set SURFACE_QUICKSAND_23, 0x0023 # Quicksand (lethal, instant)
.set SURFACE_QUICKSAND_24, 0x0024 # Moving quicksand (flowing, depth of 160 units)
.set SURFACE_QUICKSAND_25, 0x0025 # Moving quicksand (flowing, depth of 25 units)
.set SURFACE_QUICKSAND_26, 0x0026 # Moving quicksand (60 units)
.set SURFACE_QUICKSAND_27, 0x0027 # Moving quicksand (flowing, depth of 60 units)
.set SURFACE_WALL_MISC, 0x0028 # Used for some walls, Cannon to adjust the camera, and some objects like Warp Pipe
.set SURFACE_NOISE_DEFAULT, 0x0029 # Default floor with noise
.set SURFACE_NOISE_SLIPPERY, 0x002A # Slippery floor with noise
.set SURFACE_H_WIND, 0x002C # Horizontal wind, has parameters
.set SURFACE_QUICKSAND_2D, 0x002D # Quicksand (lethal, flowing)
.set SURFACE_ICE, 0x002E # Slippery Ice, in snow levels and THI's water floor
.set SURFACE_LOOK_UP_WARP, 0x002F # Look up and warp (Wing cap entrance)
.set SURFACE_HARD_FLOOR, 0x0030 # Hard floor (Always has fall damage)
.set SURFACE_WARP, 0x0032 # Surface warp
.set SURFACE_TIMER_START, 0x0033 # Timer start (Peach's secret slide)
.set SURFACE_TIMER_STOP, 0x0034 # Timer stop (Peach's secret slide)
.set SURFACE_HARD_SLIP, 0x0035 # Hard and slippery (Always has fall damage)
.set SURFACE_HARD_VERY_SLIP, 0x0036 # Hard and very slippery (Always has fall damage)
.set SURFACE_HARD_NO_SLIP, 0x0037 # Hard and Non-slippery (Always has fall damage)
.set SURFACE_V_WIND, 0x0038 # Death at bottom with vertical wind
.set SURFACE_WIDE_CAMERA, 0x0065 # Wide camera for BOB and WF bosses
.set SURFACE_FREE_ROAM_CAM, 0x0066 # Free roam camera for THI and TTC
.set SURFACE_THI3_WALLKICK, 0x0068 # Surface where there's a wall kick section in THI 3rd area, has no action defined
.set SURFACE_CAM_PLATFORM, 0x0069 # Surface that enables far camera for platforms, used in THI
.set SURFACE_CAM_MIDDLE, 0x006E # Surface camera that returns to the middle, used on the 4 pillars of SSL
.set SURFACE_CAM_ROT_RIGHT, 0x006F # Surface camera that rotates to the right (BITDW & THI)
.set SURFACE_CAM_ROT_LEFT, 0x0070 # Surface camera that rotates to the left (BOB & TTM)
.set SURFACE_CAM_BOUNDARY, 0x0072 # Intangible Area, only used to restrict camera movement
.set SURFACE_NOISE_SLIP_73, 0x0073 # Very slippery floor with noise, unused
.set SURFACE_NOISE_SLIP_74, 0x0074 # Very slippery floor with noise, unused
.set SURFACE_NOISE_SLIP_75, 0x0075 # Very slippery floor with noise, used in CCM
.set SURFACE_CAM_NO_COL, 0x0076 # Surface with no cam collision flag
.set SURFACE_CAM_NO_COL_77, 0x0077 # Surface with no cam collision flag, unused
.set SURFACE_VERY_SLIP_78, 0x0078 # Surface with no cam collision flag, very slippery with noise (THI)
.set SURFACE_SLIPPERY_79, 0x0079 # Surface with no cam collision flag, slippery with noise (CCM, PSS and TTM slides)
.set SURFACE_SWITCH, 0x007A # Surface with no cam collision flag, non-slippery with noise, used by switches and Dorrie
.set SURFACE_VAN_CAP_WALL, 0x007B # Vanish cap walls, pass through them with Vanish Cap
.set SURFACE_PAINT_WOOBLE_A6, 0x00A6 # Painting wobble (BOB, TTM Slide - Left)
.set SURFACE_PAINT_WOOBLE_A7, 0x00A7 # Painting wobble (BOB, TTM Slide - Middle)
.set SURFACE_PAINT_WOOBLE_A8, 0x00A8 # Painting wobble (BOB, TTM Slide - Right)
.set SURFACE_PAINT_WOOBLE_A9, 0x00A9 # Painting wobble (CCM Left)
.set SURFACE_PAINT_WOOBLE_AA, 0x00AA # Painting wobble (CCM Middle)
.set SURFACE_PAINT_WOOBLE_AB, 0x00AB # Painting wobble (CCM Right)
.set SURFACE_PAINT_WOOBLE_AC, 0x00AC # Painting wobble (WF Left)
.set SURFACE_PAINT_WOOBLE_AD, 0x00AD # Painting wobble (WF Middle)
.set SURFACE_PAINT_WOOBLE_AE, 0x00AE # Painting wobble (WF Right)
.set SURFACE_PAINT_WOOBLE_AF, 0x00AF # Painting wobble (JRB Left)
.set SURFACE_PAINT_WOOBLE_B0, 0x00B0 # Painting wobble (JRB Middle)
.set SURFACE_PAINT_WOOBLE_B1, 0x00B1 # Painting wobble (JRB Right)
.set SURFACE_PAINT_WOOBLE_B2, 0x00B2 # Painting wobble (LLL Left)
.set SURFACE_PAINT_WOOBLE_B3, 0x00B3 # Painting wobble (LLL Middle)
.set SURFACE_PAINT_WOOBLE_B4, 0x00B4 # Painting wobble (LLL Right)
.set SURFACE_PAINT_WOOBLE_B5, 0x00B5 # Painting wobble (SSL Left)
.set SURFACE_PAINT_WOOBLE_B6, 0x00B6 # Painting wobble (SSL Middle)
.set SURFACE_PAINT_WOOBLE_B7, 0x00B7 # Painting wobble (SSL Right)
.set SURFACE_PAINT_WOOBLE_B8, 0x00B8 # Painting wobble (Unused - Left)
.set SURFACE_PAINT_WOOBLE_B9, 0x00B9 # Painting wobble (Unused - Middle)
.set SURFACE_PAINT_WOOBLE_BA, 0x00BA # Painting wobble (Unused - Right)
.set SURFACE_PAINT_WOOBLE_BB, 0x00BB # Painting wobble (DDD - Left), makes the painting wobble if touched
.set SURFACE_PAINT_WOOBLE_BC, 0x00BC # Painting wobble (Unused, DDD - Middle)
.set SURFACE_PAINT_WOOBLE_BD, 0x00BD # Painting wobble (Unused, DDD - Right)
.set SURFACE_PAINT_WOOBLE_BE, 0x00BE # Painting wobble (WDW Left)
.set SURFACE_PAINT_WOOBLE_BF, 0x00BF # Painting wobble (WDW Middle)
.set SURFACE_PAINT_WOOBLE_C0, 0x00C0 # Painting wobble (WDW Right)
.set SURFACE_PAINT_WOOBLE_C1, 0x00C1 # Painting wobble (THI Tiny - Left)
.set SURFACE_PAINT_WOOBLE_C2, 0x00C2 # Painting wobble (THI Tiny - Middle)
.set SURFACE_PAINT_WOOBLE_C3, 0x00C3 # Painting wobble (THI Tiny - Right)
.set SURFACE_PAINT_WOOBLE_C4, 0x00C4 # Painting wobble (TTM Left)
.set SURFACE_PAINT_WOOBLE_C5, 0x00C5 # Painting wobble (TTM Middle)
.set SURFACE_PAINT_WOOBLE_C6, 0x00C6 # Painting wobble (TTM Right)
.set SURFACE_PAINT_WOOBLE_C7, 0x00C7 # Painting wobble (Unused, TTC - Left)
.set SURFACE_PAINT_WOOBLE_C8, 0x00C8 # Painting wobble (Unused, TTC - Middle)
.set SURFACE_PAINT_WOOBLE_C9, 0x00C9 # Painting wobble (Unused, TTC - Right)
.set SURFACE_PAINT_WOOBLE_CA, 0x00CA # Painting wobble (Unused, SL - Left)
.set SURFACE_PAINT_WOOBLE_CB, 0x00CB # Painting wobble (Unused, SL - Middle)
.set SURFACE_PAINT_WOOBLE_CC, 0x00CC # Painting wobble (Unused, SL - Right)
.set SURFACE_PAINT_WOOBLE_CD, 0x00CD # Painting wobble (THI Huge - Left)
.set SURFACE_PAINT_WOOBLE_CE, 0x00CE # Painting wobble (THI Huge - Middle)
.set SURFACE_PAINT_WOOBLE_CF, 0x00CF # Painting wobble (THI Huge - Right)
.set SURFACE_PAINT_WOOBLE_D0, 0x00D0 # Painting wobble (HMC & COTMC - Left), makes the painting wobble if touched
.set SURFACE_PAINT_WOOBLE_D1, 0x00D1 # Painting wobble (Unused, HMC & COTMC - Middle)
.set SURFACE_PAINT_WOOBLE_D2, 0x00D2 # Painting wobble (Unused, HMC & COTMC - Right)
.set SURFACE_PAINT_WARP_D3, 0x00D3 # Painting warp (BOB, TTM Slide - Left)
.set SURFACE_PAINT_WARP_D4, 0x00D4 # Painting warp (BOB, TTM Slide - Middle)
.set SURFACE_PAINT_WARP_D5, 0x00D5 # Painting warp (BOB, TTM Slide - Right)
.set SURFACE_PAINT_WARP_D6, 0x00D6 # Painting warp (CCM Left)
.set SURFACE_PAINT_WARP_D7, 0x00D7 # Painting warp (CCM Middle)
.set SURFACE_PAINT_WARP_D8, 0x00D8 # Painting warp (CCM Right)
.set SURFACE_PAINT_WARP_D9, 0x00D9 # Painting warp (WF Left)
.set SURFACE_PAINT_WARP_DA, 0x00DA # Painting warp (WF Middle)
.set SURFACE_PAINT_WARP_DB, 0x00DB # Painting warp (WF Right)
.set SURFACE_PAINT_WARP_DC, 0x00DC # Painting warp (JRB Left)
.set SURFACE_PAINT_WARP_DD, 0x00DD # Painting warp (JRB Middle)
.set SURFACE_PAINT_WARP_DE, 0x00DE # Painting warp (JRB Right)
.set SURFACE_PAINT_WARP_DF, 0x00DF # Painting warp (LLL Left)
.set SURFACE_PAINT_WARP_E0, 0x00E0 # Painting warp (LLL Middle)
.set SURFACE_PAINT_WARP_E1, 0x00E1 # Painting warp (LLL Right)
.set SURFACE_PAINT_WARP_E2, 0x00E2 # Painting warp (SSL Left)
.set SURFACE_PAINT_WARP_E3, 0x00E3 # Painting warp (SSL Medium)
.set SURFACE_PAINT_WARP_E4, 0x00E4 # Painting warp (SSL Right)
.set SURFACE_PAINT_WARP_E5, 0x00E5 # Painting warp (Unused - Left)
.set SURFACE_PAINT_WARP_E6, 0x00E6 # Painting warp (Unused - Medium)
.set SURFACE_PAINT_WARP_E7, 0x00E7 # Painting warp (Unused - Right)
.set SURFACE_PAINT_WARP_E8, 0x00E8 # Painting warp (DDD - Left)
.set SURFACE_PAINT_WARP_E9, 0x00E9 # Painting warp (DDD - Middle)
.set SURFACE_PAINT_WARP_EA, 0x00EA # Painting warp (DDD - Right)
.set SURFACE_PAINT_WARP_EB, 0x00EB # Painting warp (WDW Left)
.set SURFACE_PAINT_WARP_EC, 0x00EC # Painting warp (WDW Middle)
.set SURFACE_PAINT_WARP_ED, 0x00ED # Painting warp (WDW Right)
.set SURFACE_PAINT_WARP_EE, 0x00EE # Painting warp (THI Tiny - Left)
.set SURFACE_PAINT_WARP_EF, 0x00EF # Painting warp (THI Tiny - Middle)
.set SURFACE_PAINT_WARP_F0, 0x00F0 # Painting warp (THI Tiny - Right)
.set SURFACE_PAINT_WARP_F1, 0x00F1 # Painting warp (TTM Left)
.set SURFACE_PAINT_WARP_F2, 0x00F2 # Painting warp (TTM Middle)
.set SURFACE_PAINT_WARP_F3, 0x00F3 # Painting warp (TTM Right)
.set SURFACE_PAINT_WARP_F4, 0x00F4 # Painting warp (TTC Left)
.set SURFACE_PAINT_WARP_F5, 0x00F5 # Painting warp (TTC Middle)
.set SURFACE_PAINT_WARP_F6, 0x00F6 # Painting warp (TTC Right)
.set SURFACE_PAINT_WARP_F7, 0x00F7 # Painting warp (SL Left)
.set SURFACE_PAINT_WARP_F8, 0x00F8 # Painting warp (SL Middle)
.set SURFACE_PAINT_WARP_F9, 0x00F9 # Painting warp (SL Right)
.set SURFACE_PAINT_WARP_FA, 0x00FA # Painting warp (THI Tiny - Left)
.set SURFACE_PAINT_WARP_FB, 0x00FB # Painting warp (THI Tiny - Middle)
.set SURFACE_PAINT_WARP_FC, 0x00FC # Painting warp (THI Tiny - Right)
.set SURFACE_WOBBLING_WARP, 0x00FD # Pool warp (HMC & DDD)
.set SURFACE_TRAPDOOR, 0x00FF # Bowser Left trapdoor, has no action defined
# These collision commands are unique "surface" types like those defined higher
# Collision Data Routine Initiate
.macro colInit
.hword 0x0040
.endm
# Collision Vertices Read Initiate
.macro colVertexInit vtxNum
.hword \vtxNum
.endm
# Collision Vertex
.macro colVertex x, y, z
.hword \x, \y, \z
.endm
# Collision Tris Initiate
.macro colTriInit surfType, triNum
.hword \surfType
.hword \triNum
.endm
# Collision Tri
.macro colTri v1, v2, v3
.hword \v1, \v2, \v3
.endm
# Collision Tri With Special Params
.macro colTriSpecial v1, v2, v3, param
.hword \v1, \v2, \v3, \param
.endm
# Collision Tris Stop Loading
.macro colTriStop
.hword 0x0041
.endm
# End Collision Data
.macro colEnd
.hword 0x0042
.endm
# Special Object Initiate
.macro colSpecialInit num
.hword 0x0043
.hword \num
.endm
# Water Boxes Initiate
.macro colWaterBoxInit num
.hword 0x0044
.hword \num
.endm
# Water Box
.macro colWaterBox id, x1, z1, x2, z2, y
.hword \id
.hword \x1, \z1
.hword \x2, \z2
.hword \y
.endm
# Terrain types defined by the level script command terrain_type (cmd_31)
.set TERRAIN_GRASS, 0x0000
.set TERRAIN_STONE, 0x0001
.set TERRAIN_SNOW, 0x0002
.set TERRAIN_SAND, 0x0003
.set TERRAIN_SPOOKY, 0x0004
.set TERRAIN_WATER, 0x0005
.set TERRAIN_SLIDE, 0x0006
.set TERRAIN_MASK, 0x0007