Mario Kart 64
Loading...
Searching...
No Matches
Thwomp.h
Go to the documentation of this file.
1#pragma once
2
3#include <libultraship.h>
4#include <vector>
5
6#include "engine/World.h"
8
9extern "C" {
10#include "macros.h"
11#include "main.h"
12#include "vehicles.h"
13#include "waypoints.h"
14#include "common_structs.h"
15#include "objects.h"
16#include "camera.h"
17#include "some_data.h"
18}
19
22
33class OThwomp : public OObject {
34public:
35 enum States : uint16_t {
39 MOVE_FAR, // Requires enough space to work
41 SLIDE, // Moves sideways left / right
42 JAILED // Has no collision
43 };
44
46
47 explicit OThwomp(s16 x, s16 z, s16 direction, f32 scale, s16 behaviour, s16 primAlpha, u16 boundingBoxSize = 7);
48
50 _count--;
51 }
52
53 static size_t GetCount() {
54 return _count;
55 }
56
57 virtual void Tick60fps() override;
58 virtual void Draw(s32 cameraId) override;
59 void SetVisibility(s32 objectIndex);
60 void func_80080B28(s32 objectIndex, s32 playerId);
61 void DrawModel(s32);
63 void ThwompLights(s32 objectIndex);
64 void func_80080DE4(s32 arg0);
65 s32 func_8007F75C(s32 playerId);
66 void func_8007F8D8();
67 void SetPlayerCrushedEffect(s32 objectIndex, Player* player);
68 void func_80080A4C(s32 objectIndex, s32 cameraPlayerId);
69 void func_8007542C(s32 arg0);
70 void func_80074FD8(s32 objectIndex);
71 void AddParticles(s32 arg0);
72
73 s32 func_8007E50C(s32 objectIndex, Player* player, Camera* camera);
74 s32 func_8007E59C(s32 objectIndex);
75
76 void func_8007F544(s32 objectIndex);
77 void func_8007EFBC(s32 objectIndex);
78 void func_8007F280(s32 objectIndex);
79
80 void func_8007F660(s32 objectIndex, s32 arg1, s32 arg2);
81 void func_80080E8C(s32 objectIndex1, s32 objectIndex2, s32 arg2);
82 void func_8007F6C4(s32 objectIndex, s32 playerId);
83
84 void func_800810F4(s32 objectIndex);
85 void func_80081080(s32 objectIndex);
86
87 void StationaryBehaviour(s32 objectIndex);
88 void func_8007EC30(s32 objectIndex);
89
90 void MoveAndRotateBehaviour(s32 objectIndex);
91 void func_8007EE5C(s32 objectIndex);
92
93 void MoveFarBehaviour(s32 objectIndex);
94 void func_8007FA08(s32 objectIndex);
95 void func_8007FF5C(s32 objectIndex);
96 void func_8007FB48(s32 objectIndex);
97 void func_8007FEA4(s32 objectIndex);
98
99 void StationaryFastBehaviour(s32 objectIndex);
100 void func_80080078(s32 objectIndex);
101
102 void JailedBehaviour(s32 objectIndex);
103 void func_800802C0(s32 objectIndex);
104
105 void SlidingBehaviour(s32 objectIndex);
106 void func_80080524(s32 objectIndex);
107 void func_8008085C(s32 objectIndex);
108 void func_800806BC(s32 objectIndex);
109 void func_8008078C(s32 objectIndex);
110
111 void func_8007E63C(s32 objectIndex);
112private:
113 static size_t _count;
114 static size_t _rand;
115 s32 _idx;
118 // We should probably return to the programmer the pointer to the actor so they can do thwomp->squishSize = value.
120};
OObject()
Definition Object.cpp:13
void func_8007EE5C(s32 objectIndex)
Definition Thwomp.cpp:876
void func_80080E8C(s32 objectIndex1, s32 objectIndex2, s32 arg2)
void func_8007FB48(s32 objectIndex)
Definition Thwomp.cpp:967
void func_80080078(s32 objectIndex)
Definition Thwomp.cpp:1095
void SetVisibility(s32 objectIndex)
Definition Thwomp.cpp:321
void func_8007F8D8()
Definition Thwomp.cpp:342
static size_t GetCount()
Definition Thwomp.h:53
void StationaryFastBehaviour(s32 objectIndex)
Definition Thwomp.cpp:1068
s32 _idx
Definition Thwomp.h:115
s32 func_8007E59C(s32 objectIndex)
Definition Thwomp.cpp:412
static size_t _rand
Definition Thwomp.h:114
void func_8008078C(s32 objectIndex)
Definition Thwomp.cpp:1254
void func_8007EC30(s32 objectIndex)
Definition Thwomp.cpp:828
void func_800802C0(s32 objectIndex)
Definition Thwomp.cpp:1164
void func_80080DE4(s32 arg0)
Definition Thwomp.cpp:784
void func_80081080(s32 objectIndex)
Definition Thwomp.cpp:189
virtual void Draw(s32 cameraId) override
Definition Thwomp.cpp:672
void JailedBehaviour(s32 objectIndex)
Definition Thwomp.cpp:1133
void func_8007EFBC(s32 objectIndex)
Definition Thwomp.cpp:441
void func_8007FA08(s32 objectIndex)
Definition Thwomp.cpp:929
void func_8007F660(s32 objectIndex, s32 arg1, s32 arg2)
Definition Thwomp.cpp:593
void SetPlayerCrushedEffect(s32 objectIndex, Player *player)
Definition Thwomp.cpp:245
void func_80080A4C(s32 objectIndex, s32 cameraPlayerId)
Definition Thwomp.cpp:251
void func_800806BC(s32 objectIndex)
Definition Thwomp.cpp:1233
s16 _faceDirection
Definition Thwomp.h:116
void AddParticles(s32 arg0)
Definition Thwomp.cpp:206
void TranslateThwompLights()
Definition Thwomp.cpp:749
u16 _boundingBoxSize
Definition Thwomp.h:119
void func_8007F544(s32 objectIndex)
Definition Thwomp.cpp:430
s32 func_8007F75C(s32 playerId)
Definition Thwomp.cpp:372
void func_80080B28(s32 objectIndex, s32 playerId)
Definition Thwomp.cpp:615
void func_80074FD8(s32 objectIndex)
Definition Thwomp.cpp:299
void func_8007F6C4(s32 objectIndex, s32 playerId)
Definition Thwomp.cpp:604
void func_8007F280(s32 objectIndex)
Definition Thwomp.cpp:517
void MoveFarBehaviour(s32 objectIndex)
Definition Thwomp.cpp:907
void func_8007FF5C(s32 objectIndex)
Definition Thwomp.cpp:956
void func_80080524(s32 objectIndex)
Definition Thwomp.cpp:1276
States
Definition Thwomp.h:35
@ JAILED
Definition Thwomp.h:42
@ MOVE_FAR
Definition Thwomp.h:39
@ SLIDE
Definition Thwomp.h:41
@ DISABLED
Definition Thwomp.h:36
@ STATIONARY_FAST
Definition Thwomp.h:40
@ MOVE_AND_ROTATE
Definition Thwomp.h:38
@ STATIONARY
Definition Thwomp.h:37
void SlidingBehaviour(s32 objectIndex)
Definition Thwomp.cpp:1194
s32 func_8007E50C(s32 objectIndex, Player *player, Camera *camera)
Definition Thwomp.cpp:398
void func_8007FEA4(s32 objectIndex)
Definition Thwomp.cpp:1045
OThwomp(s16 x, s16 z, s16 direction, f32 scale, s16 behaviour, s16 primAlpha, u16 boundingBoxSize=7)
Definition Thwomp.cpp:51
States State
Definition Thwomp.h:45
void func_8007542C(s32 arg0)
Definition Thwomp.cpp:265
~OThwomp()
Definition Thwomp.h:49
void MoveAndRotateBehaviour(s32 objectIndex)
Definition Thwomp.cpp:853
void StationaryBehaviour(s32 objectIndex)
Definition Thwomp.cpp:799
void func_8007E63C(s32 objectIndex)
Definition Thwomp.cpp:1312
virtual void Tick60fps() override
Definition Thwomp.cpp:77
void func_800810F4(s32 objectIndex)
Definition Thwomp.cpp:167
void ThwompLights(s32 objectIndex)
Definition Thwomp.cpp:756
static size_t _count
Definition Thwomp.h:113
void DrawModel(s32)
Definition Thwomp.cpp:735
void func_8008085C(s32 objectIndex)
Definition Thwomp.cpp:1221
Definition camera.h:27
Definition common_structs.h:264