sm64coopdx/src/pc/lua/utils/smlua_collision_utils.h

121 lines
5.5 KiB
C

#ifndef SMLUA_COLLISION_UTILS_H
#define SMLUA_COLLISION_UTILS_H
struct RayIntersectionInfo {
struct Surface* surface;
Vec3f hitPos;
};
struct GlobalObjectCollisionData {
Collision* bbh_seg7_collision_coffin;
Collision* bbh_seg7_collision_haunted_bookshelf;
Collision* bbh_seg7_collision_merry_go_round;
Collision* bbh_seg7_collision_mesh_elevator;
Collision* bbh_seg7_collision_staircase_step;
Collision* bbh_seg7_collision_tilt_floor_platform;
Collision* bitdw_seg7_collision_moving_pyramid;
Collision* bitfs_seg7_collision_inverted_pyramid;
Collision* bitfs_seg7_collision_sinking_cage_platform;
Collision* bitfs_seg7_collision_sinking_platform;
Collision* bitfs_seg7_collision_squishable_platform;
Collision* blue_coin_switch_seg8_collision_08000E98;
Collision* bob_seg7_collision_chain_chomp_gate;
Collision* bowser_2_seg7_collision_tilting_platform;
Collision* breakable_box_seg8_collision_08012D70;
Collision* cannon_lid_seg8_collision_08004950;
Collision* capswitch_collision_050033D0;
Collision* capswitch_collision_05003448;
Collision* castle_grounds_seg7_collision_cannon_grill;
Collision* castle_grounds_seg7_collision_moat_grills;
Collision* checkerboard_platform_seg8_collision_0800D710;
Collision* ddd_seg7_collision_bowser_sub_door;
Collision* ddd_seg7_collision_submarine;
Collision* door_seg3_collision_0301CE78;
Collision* dorrie_seg6_collision_0600F644;
Collision* dorrie_seg6_collision_0600FBB8;
Collision* exclamation_box_outline_seg8_collision_08025F78;
Collision* hmc_seg7_collision_controllable_platform;
Collision* hmc_seg7_collision_controllable_platform_sub;
Collision* hmc_seg7_collision_elevator;
Collision* inside_castle_seg7_collision_floor_trap;
Collision* inside_castle_seg7_collision_star_door;
Collision* inside_castle_seg7_collision_water_level_pillar;
Collision* jrb_seg7_collision_floating_box;
Collision* jrb_seg7_collision_floating_platform;
Collision* jrb_seg7_collision_in_sunken_ship;
Collision* jrb_seg7_collision_in_sunken_ship_2;
Collision* jrb_seg7_collision_in_sunken_ship_3;
Collision* jrb_seg7_collision_pillar_base;
Collision* jrb_seg7_collision_rock_solid;
Collision* lll_hexagonal_mesh_seg3_collision_0301CECC;
Collision* lll_seg7_collision_drawbridge;
Collision* lll_seg7_collision_falling_wall;
Collision* lll_seg7_collision_floating_block;
Collision* lll_seg7_collision_hexagonal_platform;
Collision* lll_seg7_collision_inverted_pyramid;
Collision* lll_seg7_collision_octagonal_moving_platform;
Collision* lll_seg7_collision_pitoune;
Collision* lll_seg7_collision_puzzle_piece;
Collision* lll_seg7_collision_rotating_fire_bars;
Collision* lll_seg7_collision_rotating_platform;
Collision* lll_seg7_collision_sinking_pyramids;
Collision* lll_seg7_collision_slow_tilting_platform;
Collision* lll_seg7_collision_wood_piece;
Collision* metal_box_seg8_collision_08024C28;
Collision* penguin_seg5_collision_05008B88;
Collision* poundable_pole_collision_06002490;
Collision* purple_switch_seg8_collision_0800C7A8;
Collision* rr_seg7_collision_donut_platform;
Collision* rr_seg7_collision_elevator_platform;
Collision* rr_seg7_collision_pendulum;
Collision* rr_seg7_collision_rotating_platform_with_fire;
Collision* sl_seg7_collision_pound_explodes;
Collision* sl_seg7_collision_sliding_snow_mound;
Collision* springboard_collision_05001A28;
Collision* ssl_seg7_collision_0702808C;
Collision* ssl_seg7_collision_grindel;
Collision* ssl_seg7_collision_pyramid_elevator;
Collision* ssl_seg7_collision_pyramid_top;
Collision* ssl_seg7_collision_spindel;
Collision* ssl_seg7_collision_tox_box;
Collision* thi_seg7_collision_top_trap;
Collision* thwomp_seg5_collision_0500B7D0;
Collision* thwomp_seg5_collision_0500B92C;
Collision* ttc_seg7_collision_clock_main_rotation;
Collision* ttc_seg7_collision_clock_pendulum;
Collision* ttc_seg7_collision_clock_platform;
Collision* ttc_seg7_collision_rotating_clock_platform2;
Collision* ttc_seg7_collision_sliding_surface;
Collision* ttm_seg7_collision_pitoune_2;
Collision* ttm_seg7_collision_podium_warp;
Collision* ttm_seg7_collision_ukiki_cage;
Collision* unknown_seg8_collision_080262F8;
Collision* warp_pipe_seg3_collision_03009AC8;
Collision* wdw_seg7_collision_arrow_lift;
Collision* wdw_seg7_collision_express_elevator_platform;
Collision* wdw_seg7_collision_rect_floating_platform;
Collision* wdw_seg7_collision_square_floating_platform;
Collision* wf_seg7_collision_breakable_wall;
Collision* wf_seg7_collision_breakable_wall_2;
Collision* wf_seg7_collision_bullet_bill_cannon;
Collision* wf_seg7_collision_clocklike_rotation;
Collision* wf_seg7_collision_kickable_board;
Collision* wf_seg7_collision_large_bomp;
Collision* wf_seg7_collision_platform;
Collision* wf_seg7_collision_sliding_brick_platform;
Collision* wf_seg7_collision_small_bomp;
Collision* wf_seg7_collision_tower;
Collision* wf_seg7_collision_tower_door;
Collision* whomp_seg6_collision_06020A0C;
Collision* wooden_signpost_seg3_collision_0302DD80;
};
extern struct GlobalObjectCollisionData gGlobalObjectCollisionData;
struct RayIntersectionInfo* collision_find_surface_on_ray(f32 startX, f32 startY, f32 startZ, f32 dirX, f32 dirY, f32 dirZ);
struct Surface* get_water_surface_pseudo_floor(void);
Collision* smlua_collision_util_get(const char* name);
#endif