forked from n64decomp/sm64
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpaintings.h
136 lines (104 loc) · 3.06 KB
/
paintings.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#ifndef PAINTINGS_H
#define PAINTINGS_H
#define DEFAULT_HEIGHT 614.0
#define PAINTING_ID_DDD 7
#define DIRE_DIRE_DOCKS 9
#define BOARD_BOWSERS_SUB 1
#define BOWSERS_SUB_BEATEN 0x2
#define DDD_BACK 0x1
#define STAND_LEFT 0x20
#define STAND_MIDDLE 0x10
#define STAND_RIGHT 0x8
#define ENTER_LEFT 0x4
#define ENTER_MIDDLE 0x2
#define ENTER_RIGHT 0x1
#define RIPPLE_SHAPE_WAVE 0
#define RIPPLE_SHAPE_CONCENTRIC 1
#define RIPPLE_STATE_NONE 0
#define RIPPLE_STATE_IDLE 1
#define RIPPLE_STATE_ENTRY 2
#define RIPPLE_TRIGGER_PROXIMITY 10
#define RIPPLE_TRIGGER_CONTINUOUS 20
#define ROTATION_VERTICAL 0
#define NEAR_MARIO_LATERALLY 30
#define MARIO_X 40
#define MIDDLE_X 50
#define MARIO_Y 60
#define MARIO_Z 70
#define MIDDLE_Y 80
#define DONT_RESET_TIMER -56
#define RESET_TIMER 100
struct Painting
{
s16 id;
s8 faceCount;
s8 rippleShape;
s8 lastFloor;
s8 currFloor;
s8 floorEntered;
s8 rippleStatus;
float vXRotation;
float vYRotation;
float vXPos;
float vYPos;
float vZPos;
float currRippleMag;
float passiveRippleMag;
float entryRippleMag;
float rippleMagMultiplier;
float passiveRippleMagMultiplier;
float entryRippleMagMultiplier;
float currRippleRate;
float passiveRippleRate;
float entryRippleRate;
float dispersionFactor; // the rate at which the magnitude of the ripple decreases as you move farther from the central point of the ripple
float passiveDispersionFactor;
float entryDispersionFactor;
float rippleTimer;
float horizontalRippleSpot;
float verticalRippleSpot;
const Gfx *displayList58;
const s16 *const *meshData;
const u8 *const *textureArray;
s16 textureWidth;
s16 textureHeight;
const Gfx *displayList68;
s8 rippleTrigger;
u8 brightness;
s8 lastMarioUnderPainting;
s8 currMarioUnderPainting;
s8 marioNewlyUnderPainting;
float vSize;
};
extern struct Painting cotmc_painting;
extern struct Painting bob_painting;
extern struct Painting ccm_painting;
extern struct Painting wf_painting;
extern struct Painting jrb_painting;
extern struct Painting lll_painting;
extern struct Painting ssl_painting;
extern struct Painting hmc_painting;
extern struct Painting ddd_painting;
extern struct Painting wdw_painting;
extern struct Painting thi_tiny_painting;
extern struct Painting ttm_painting;
extern struct Painting ttc_painting;
extern struct Painting sl_painting;
extern struct Painting thi_huge_painting;
extern struct Painting ttm_slide_painting;
extern u16 gAreaUpdateCounter;
extern float gPaintingMarioYEntry;
// defined in file
extern s16 gPaintingMarioFloorType;
extern float gPaintingMarioXPos, gPaintingMarioYPos, gPaintingMarioZPos;
struct Thing { //TODO: Give me a better name
/*0x00*/ s16 unk0[3];
/*0x06*/ s8 unk6[3];
};
extern struct Thing *D_8035FFA0;
extern Vec3f *D_8035FFA4;
extern struct Painting *ripplingPainting;
extern s8 dddStatus;
extern Gfx *Geo18_802D5B98(s32 run, struct GraphNode *node, void *context);
extern Gfx *Geo18_802D5D0C(s32 run, struct GraphNode *node, f32 c[4][4]);
#endif /* PAINTINGS_H */