Spyro 1 Reverse Engineering
Decompilation of functions from Spyro 1 into human readable C
 
Loading...
Searching...
No Matches
shapes.h
Go to the documentation of this file.
1#ifndef FILTERS_H
2#define FILTERS_H
3
4#include <common.h>
5
6//~~~~~~~~~
7//Constants
8//~~~~~~~~~
9
10typedef enum PrimitiveCode
11{
20
29
35
37{
41};
42
43// enum DrawOpaqueShapeColorSpaces
44// {
45// RGB_DARK = 0x00,
46// RGB = 0x20,
47// CMY = 0x40
48// };
49
50//~~~~~~~
51//Structs
52//~~~~~~~
53
54typedef struct Poly3F
55{
56
57 int tag;
58
60 char code;
61
65
66} Poly3F;
67
68
69typedef struct Poly4F
70{
71
72 int tag;
73
75 char code;
76
81
82} Poly4F;
83
84typedef struct Poly3FShaded
85{
86
87 int tag;
88
90 char code;
91
93
96
99
101
102typedef struct Poly4FShaded
103{
104
105 int tag;
106
108 char code;
109
111
114
117
120
122
123typedef struct Poly4FTextured
124{
125
126 int tag;
127
129 char code;
130
132
133 struct Vec2_u8 texturePoint1Pos; // The X for compressed textures is doubled.
134 short clut;
135
137
140
143 short PADDING1;
146 short PADDING2;
147
149
150typedef struct Poly4FShadedTextured
151{
152
153 int tag;
154
156 char code;
157
159
160 struct Vec2_u8 texturePoint1Pos; // The X for compressed textures is doubled.
161 short clut;
162
164
166
169
171
173
175 short PADDING1;
176
178
181 short PADDING2;
182
184
185typedef struct Line
186{
187 int tag;
188
189 RGB_u8 color; //? 0x4 - 0x6
190 char code; //? 0x7
191
192 Vec2_u16 point1Pos; //? 0x8-0xB
193 Vec2_u16 point2Pos; //? 0x10-0x13
194
195} Line;
196
197typedef struct ShadedLine
198{
199 int tag;
200
201 RGB_u8 colorP1; //? 0x4 - 0x6
202 char code; //? 0x7
203
204 Vec2_u16 point1Pos; //? 0x8-0xB
205
206 RGB_u8 colorP2; //? 0xC-0xE
207 char PADDING5; //? 0xF
208
209 Vec2_u16 point2Pos; //? 0x10-0x13
210} ShadedLine;
211
212
213typedef struct Poly4F_Vec3
214{
219
221
222
223typedef struct Poly4FPadded
224{
228
229 int tag;
230
232 char code;
233
238
240
241#endif //FILTERS_H
PrimitiveCode
Definition shapes.h:11
@ POLY3F_OPAQUE_TEXURED_RAW
Definition shapes.h:16
@ POLY4F_OPAQUE
Definition shapes.h:21
@ POLY3F_OPAQUE_SHADEDANDTEXTURED_RAW
Definition shapes.h:18
@ POLY4F_TRANSPARENT
Definition shapes.h:22
@ LINE_TRANSPARENT_SHADED
Definition shapes.h:33
@ POLY4F_OPAQUE_SHADED
Definition shapes.h:23
@ POLY3F_TRANSPARENT
Definition shapes.h:13
@ POLY3F_TRANSPARENT_SHADEDANDTEXTURED_RAW
Definition shapes.h:19
@ POLY4F_OPAQUE_SHADEDANDTEXTURED_RAW
Definition shapes.h:27
@ LINE_TRANSPARENT
Definition shapes.h:31
@ LINE_OPAQUE_SHADED
Definition shapes.h:32
@ POLY3F_TRANSPARENT_SHADED
Definition shapes.h:15
@ POLY4F_OPAQUE_TEXTURED_RAW
Definition shapes.h:25
@ LINE_OPAQUE
Definition shapes.h:30
@ POLY3F_OPAQUE_SHADED
Definition shapes.h:14
@ POLY3F_TRANSPARENT_TEXTURED_RAW
Definition shapes.h:17
@ POLY4F_TRANSPARENT_SHADED
Definition shapes.h:24
@ POLY3F_OPAQUE
Definition shapes.h:12
@ POLY4F_TRANSPARENT_TEXTURED_RAW
Definition shapes.h:26
@ POLY4F_TRANSPARENT_SHADEDANDTEXTURED_RAW
Definition shapes.h:28
ColorModes
Definition shapes.h:37
@ COLORMODE_4BIT
Definition shapes.h:38
@ COLORMODE_8BIT
Definition shapes.h:39
@ COLORMODE_16BIT
Definition shapes.h:40
Definition shapes.h:186
Vec2_u16 point2Pos
Definition shapes.h:193
Vec2_u16 point1Pos
Definition shapes.h:192
char code
Definition shapes.h:190
RGB_u8 color
Definition shapes.h:189
int tag
Definition shapes.h:187
int tag
Definition shapes.h:57
RGB_u8 color
Definition shapes.h:59
struct Vec2_u16 point3Pos
Definition shapes.h:64
char code
Definition shapes.h:60
struct Vec2_u16 point1Pos
Definition shapes.h:62
struct Vec2_u16 point2Pos
Definition shapes.h:63
RGB_u8 color
Definition shapes.h:89
RGB_u8 color3
Definition shapes.h:97
RGB_u8 color2
Definition shapes.h:94
struct Vec2_u16 point1Pos
Definition shapes.h:92
char code
Definition shapes.h:90
struct Vec2_u16 point2Pos
Definition shapes.h:95
struct Vec2_u16 point3Pos
Definition shapes.h:98
struct Vec3 point2Pos
Definition shapes.h:216
struct Vec3 point4Pos
Definition shapes.h:218
struct Vec3 point1Pos
Definition shapes.h:215
struct Vec3 point3Pos
Definition shapes.h:217
struct Vec2_u16 point3Pos
Definition shapes.h:79
struct Vec2_u16 point1Pos
Definition shapes.h:77
RGB_u8 color
Definition shapes.h:74
int tag
Definition shapes.h:72
struct Vec2_u16 point2Pos
Definition shapes.h:78
char code
Definition shapes.h:75
struct Vec2_u16 point4Pos
Definition shapes.h:80
FOR IN GAME.
Definition shapes.h:224
struct Vec2_u16 point4Pos
Definition shapes.h:237
int PADDING2
Definition shapes.h:226
struct Vec2_u16 point1Pos
Definition shapes.h:234
struct Vec2_u16 point3Pos
Definition shapes.h:236
char code
Definition shapes.h:232
RGB_u8 color
Definition shapes.h:231
int PADDING3
Definition shapes.h:227
struct Vec2_u16 point2Pos
Definition shapes.h:235
int PADDING1
Definition shapes.h:225
struct Vec2_u16 point3Pos
Definition shapes.h:116
RGB_u8 color
Definition shapes.h:107
struct Vec2_u16 point2Pos
Definition shapes.h:113
struct Vec2_u16 point1Pos
Definition shapes.h:110
char code
Definition shapes.h:108
RGB_u8 color3
Definition shapes.h:115
RGB_u8 color4
Definition shapes.h:118
RGB_u8 color2
Definition shapes.h:112
struct Vec2_u16 point4Pos
Definition shapes.h:119
struct Vec2_u8 texturePoint3Pos
Definition shapes.h:174
struct Vec2_u16 point1Pos
Definition shapes.h:158
struct Vec2_u16 point3Pos
Definition shapes.h:172
struct Vec2_u8 texturePoint2Pos
Definition shapes.h:167
struct Vec2_u16 point4Pos
Definition shapes.h:179
struct Vec2_u8 texturePoint4Pos
Definition shapes.h:180
struct Vec2_u16 point2Pos
Definition shapes.h:165
struct Vec2_u8 texturePoint1Pos
Definition shapes.h:160
struct Vec2_u16 point1Pos
Definition shapes.h:131
struct Vec2_u16 point2Pos
Definition shapes.h:136
struct Vec2_u8 texturePoint3Pos
Definition shapes.h:142
RGB_u8 color
Definition shapes.h:128
short PADDING1
Definition shapes.h:143
struct Vec2_u16 point4Pos
Definition shapes.h:144
short texturePage
Definition shapes.h:139
struct Vec2_u8 texturePoint1Pos
Definition shapes.h:133
struct Vec2_u8 texturePoint2Pos
Definition shapes.h:138
struct Vec2_u8 texturePoint4Pos
Definition shapes.h:145
struct Vec2_u16 point3Pos
Definition shapes.h:141
short PADDING2
Definition shapes.h:146
char code
Definition shapes.h:202
int tag
Definition shapes.h:199
Vec2_u16 point1Pos
Definition shapes.h:204
RGB_u8 colorP2
Definition shapes.h:206
char PADDING5
Definition shapes.h:207
Vec2_u16 point2Pos
Definition shapes.h:209
RGB_u8 colorP1
Definition shapes.h:201
Definition vector.h:9