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 {
34private:
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
45public:
47
48 explicit OThwomp(s16 x, s16 z, s16 direction, f32 scale, s16 behaviour, s16 primAlpha, u16 boundingBoxSize = 7);
49
51 _count--;
52 }
53
54 static size_t GetCount() {
55 return _count;
56 }
57
58 virtual void Tick60fps() override;
59 virtual void Draw(s32 cameraId) override;
60 void SetVisibility(s32 objectIndex);
61 void func_80080B28(s32 objectIndex, s32 playerId);
62 void DrawModel(s32);
64 void ThwompLights(s32 objectIndex);
65 void func_80080DE4(s32 arg0);
66 s32 func_8007F75C(s32 playerId);
67 void func_8007F8D8();
68 void SetPlayerCrushedEffect(s32 objectIndex, Player* player);
69 void func_80080A4C(s32 objectIndex, s32 cameraPlayerId);
70 void func_8007542C(s32 arg0);
71 void func_80074FD8(s32 objectIndex);
72 void AddParticles(s32 arg0);
73
74 s32 func_8007E50C(s32 objectIndex, Player* player, Camera* camera);
75 s32 func_8007E59C(s32 objectIndex);
76
77 void func_8007F544(s32 objectIndex);
78 void func_8007EFBC(s32 objectIndex);
79 void func_8007F280(s32 objectIndex);
80
81 void func_8007F660(s32 objectIndex, s32 arg1, s32 arg2);
82 void func_80080E8C(s32 objectIndex1, s32 objectIndex2, s32 arg2);
83 void func_8007F6C4(s32 objectIndex, s32 playerId);
84
85 void func_800810F4(s32 objectIndex);
86 void func_80081080(s32 objectIndex);
87
88 void StationaryBehaviour(s32 objectIndex);
89 void func_8007EC30(s32 objectIndex);
90
91 void MoveAndRotateBehaviour(s32 objectIndex);
92 void func_8007EE5C(s32 objectIndex);
93
94 void MoveFarBehaviour(s32 objectIndex);
95 void func_8007FA08(s32 objectIndex);
96 void func_8007FF5C(s32 objectIndex);
97 void func_8007FB48(s32 objectIndex);
98 void func_8007FEA4(s32 objectIndex);
99
100 void StationaryFastBehaviour(s32 objectIndex);
101 void func_80080078(s32 objectIndex);
102
103 void JailedBehaviour(s32 objectIndex);
104 void func_800802C0(s32 objectIndex);
105
106 void SlidingBehaviour(s32 objectIndex);
107 void func_80080524(s32 objectIndex);
108 void func_8008085C(s32 objectIndex);
109 void func_800806BC(s32 objectIndex);
110 void func_8008078C(s32 objectIndex);
111
112 void func_8007E63C(s32 objectIndex);
113private:
114 static size_t _count;
115 static size_t _rand;
116 s32 _idx;
119 // We should probably return to the programmer the pointer to the actor so they can do thwomp->squishSize = value.
121};
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:54
void StationaryFastBehaviour(s32 objectIndex)
Definition Thwomp.cpp:1068
s32 _idx
Definition Thwomp.h:116
s32 func_8007E59C(s32 objectIndex)
Definition Thwomp.cpp:412
static size_t _rand
Definition Thwomp.h:115
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:117
void AddParticles(s32 arg0)
Definition Thwomp.cpp:206
void TranslateThwompLights()
Definition Thwomp.cpp:749
u16 _boundingBoxSize
Definition Thwomp.h:120
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:46
void func_8007542C(s32 arg0)
Definition Thwomp.cpp:265
~OThwomp()
Definition Thwomp.h:50
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:114
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