Isle
Loading...
Searching...
No Matches
legoactors.cpp
Go to the documentation of this file.
1#include "legoactors.h"
2
6
7// Unclear whether g_actorLODs[0] (top) is its own global, see: LegoCharacterManager::CreateActorROI
8
9// GLOBAL: LEGO1 0x100da3b0
11 {"top", "top", 0, 0.000267f, 0.780808f, -0.01906f, 0.951612f, -0.461166f, -0.002794f, -0.299442f, 0.4617f,
12 1.56441f, 0.261321f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f},
13 {"body", "body", LegoActorLOD::c_flag1,
14 0.00158332f, 0.401828f, -0.00048697f,
15 0.408071f, -0.287507f, 0.150419f,
16 -0.147452f, 0.289219f, 0.649774f,
17 0.14258f, -0.00089f, 0.436353f,
18 0.007277f, 0.0f, 0.0f,
19 1.0f, 0.0f, 1.0f,
20 0.0f},
21 {"infohat", "infohat", LegoActorLOD::c_flag2,
22 0.0f, -0.00938f, -0.01955f,
23 0.35f, -0.231822f, -0.140237f,
24 -0.320954f, 0.234149f, 0.076968f,
25 0.249083f, 0.000191f, 1.519793f,
26 0.001767f, 0.0f, 0.0f,
27 1.0f, 0.0f, 1.0f,
28 0.0f},
29 {"infogron", "infogron", LegoActorLOD::c_flag2,
30 0.0f, 0.11477f, 0.00042f,
31 0.26f, -0.285558f, -0.134391f,
32 -0.142231f, 0.285507f, 0.152986f,
33 0.143071f, -0.00089f, 0.436353f,
34 0.007277f, 0.0f, 0.0f,
35 1.0f, 0.0f, 1.0f,
36 0.0f},
37 {"head", "head", LegoActorLOD::c_flag1,
38 0.0f, -0.03006f, 0.0f,
39 0.3f, -0.189506f, -0.209665f,
40 -0.189824f, 0.189532f, 0.228822f,
41 0.194945f, -0.00105f, 1.293115f,
42 0.001781f, 0.0f, 0.0f,
43 1.0f, 0.0f, 1.0f,
44 0.0f},
45 {"arm-lft", "arm-lft", LegoActorLOD::c_flag2,
46 -0.06815f, -0.0973747f, 0.0154655f,
47 0.237f, -0.137931f, -0.282775f,
48 -0.105316f, 0.000989f, 0.100221f,
49 0.140759f, -0.225678f, 0.963312f,
50 0.023286f, -0.003031f, -0.017187f,
51 0.999848f, 0.173622f, 0.984658f,
52 0.017453f},
53 {"arm-rt", "arm-rt", LegoActorLOD::c_flag2,
54 0.0680946f, -0.097152f, 0.0152722f,
55 0.237f, 0.00141f, -0.289604f,
56 -0.100831f, 0.138786f, 0.09291f,
57 0.145437f, 0.223494f, 0.963583f,
58 0.018302f, 0.0f, 0.0f,
59 1.0f, -0.173648f, 0.984808f,
60 0.0f},
61 {"claw-lft", "claw-lft", LegoActorLOD::c_flag2,
62 0.000773381f, -0.101422f, -0.0237761f,
63 0.15f, -0.089838f, -0.246208f,
64 -0.117735f, 0.091275f, 0.000263f,
65 0.07215f, -0.341869f, 0.700355f,
66 0.092779f, 0.000001f, 0.000003f,
67 1.0f, 0.190812f, 0.981627f,
68 -0.000003f},
69 {"claw-rt", "claw-lft", LegoActorLOD::c_flag2,
70 0.000773381f, -0.101422f, -0.0237761f,
71 0.15f, -0.095016f, -0.245349f,
72 -0.117979f, 0.086528f, 0.00067f,
73 0.069743f, 0.343317f, 0.69924f,
74 0.096123f, 0.00606f, -0.034369f,
75 0.999391f, -0.190704f, 0.981027f,
76 0.034894f},
77 {"leg-lft", "leg", LegoActorLOD::c_flag2,
78 0.00433584f, -0.177404f, -0.0313928f,
79 0.33f, -0.129782f, -0.440428f,
80 -0.184207f, 0.13817f, 0.118415f,
81 0.122607f, -0.156339f, 0.436087f,
82 0.006822f, 0.0f, 0.0f,
83 1.0f, 0.0f, 1.0f,
84 0.0f},
85 {"leg-rt", "leg", LegoActorLOD::c_flag2,
86 0.00433584f, -0.177404f, -0.0313928f,
87 0.33f, -0.132864f, -0.437138f,
88 -0.183944f, 0.134614f, 0.12043f,
89 0.121888f, 0.151154f, 0.436296f,
90 0.007373f, 0.0f, 0.0f,
91 1.0f, 0.0f, 1.0f,
92 0.0f}
93};
94
95// GLOBAL: LEGO1 0x100da778
96MxU8 g_unk0x100da778[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0xff};
97
98// GLOBAL: LEGO1 0x100da790
99MxU8 g_unk0x100da790[] = {21, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0xff};
100
101// GLOBAL: LEGO1 0x100da7a8
102MxU8 g_unk0x100da7a8[] = {22, 0xff};
103
104// GLOBAL: LEGO1 0x100da7ac
105MxU8 g_unk0x100da7ac[] = {20, 0xff};
106
107// GLOBAL: LEGO1 0x100da7b0
108MxU8 g_unk0x100da7b0[] = {0, 1, 2, 3, 4, 5, 6, 7, 0xff};
109
110// GLOBAL: LEGO1 0x100da7c0
111MxU8 g_unk0x100da7c0[] = {0, 1, 2, 3, 4, 5, 6, 7, 0xff};
112
113// GLOBAL: LEGO1 0x100da7d0
114MxU8 g_unk0x100da7d0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0xff};
115
116// GLOBAL: LEGO1 0x100da7e0
117MxU8 g_unk0x100da7e0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
118 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 0xff};
119
120// GLOBAL: LEGO1 0x100da800
121MxU8 g_unk0x100da800[] = {0, 1, 2, 3, 4, 5, 6, 7, 0xff};
122
123// GLOBAL: LEGO1 0x100da810
124MxU8 g_unk0x100da810[] = {0, 1, 2, 3, 4, 5, 6, 7, 0xff};
125
126// GLOBAL: LEGO1 0x100da820
127MxU8 g_unk0x100da820[] = {0, 1, 2, 3, 4, 5, 6, 7, 0xff};
128
129// GLOBAL: LEGO1 0x100da830
130MxU8 g_unk0x100da830[] = {0, 1, 2, 3, 4, 5, 6, 7, 0xff};
131
132// GLOBAL: LEGO1 0x100da840
133MxU8 g_unk0x100da840[] = {0, 1, 2, 3, 4, 5, 6, 7, 0xff};
134
135// GLOBAL: LEGO1 0x100f7f78
136const char* g_unk0x100f7f78[] = {"baseball", "chef", "cap", "cophat", "helmet", "ponytail", "pageboy", "shrthair",
137 "bald", "flower", "cboyhat", "cuphat", "cathat", "backbcap", "pizhat", "caprc",
138 "capch", "capdb", "capjs", "capmd", "sheet", "phat", "icap", NULL};
139
140// GLOBAL: LEGO1 0x100f7fd8
141const char* g_unk0x100f7fd8[] =
142 {"body", "bodyred", "bodyblck", "bodywhte", "bodyyllw", "bodyblue", "bodygren", "bodybrwn"};
143
144// GLOBAL: LEGO1 0x100f7ff8
145const char* g_unk0x100f7ff8[] = {"peprchst.gif", "mamachst.gif", "papachst.gif", "nickchst.gif", "norachst.gif",
146 "infochst.gif", "shftchst.gif", "rac1chst.gif", "rac2chst.gif", "bth1chst.gif",
147 "bth2chst.gif", "mech.gif", "polkadot.gif", "bowtie.gif", "postchst.gif",
148 "vest.gif", "doctor.gif", "copchest.gif", "l.gif", "e.gif",
149 "g.gif", "o.gif", "fruit.gif", "flowers.gif", "construct.gif",
150 "paint.gif", "l6.gif", "unkchst.gif"};
151
152// GLOBAL: LEGO1 0x100f8068
153const char* g_unk0x100f8068[] = {
154 "peprface.gif",
155 "mamaface.gif",
156 "papaface.gif",
157 "nickface.gif",
158 "noraface.gif",
159 "infoface.gif",
160 "shftface.gif",
161 "dogface.gif",
162 "womanshd.gif",
163 "smileshd.gif",
164 "woman.gif",
165 "smile.gif",
166 "mustache.gif",
167 "black.gif"
168};
169
170// GLOBAL: LEGO1 0x100f80a0
171const char* g_unk0x100f80a0[] =
172 {"lego white", "lego black", "lego yellow", "lego red", "lego blue", "lego brown", "lego lt grey", "lego green"};
173
174// GLOBAL: LEGO1 0x100f80c0
176 {"pepper",
177 NULL,
178 NULL,
179 0,
180 0,
181 0,
192 {"mama",
193 NULL,
194 NULL,
195 0,
196 0,
197 0,
208 {"papa",
209 NULL,
210 NULL,
211 0,
212 0,
213 0,
224 {"nick",
225 NULL,
226 NULL,
227 0,
228 0,
229 0,
240 {"laura",
241 NULL,
242 NULL,
243 0,
244 0,
245 0,
256 {"infoman",
257 NULL,
258 NULL,
259 0,
260 0,
261 0,
272 {"brickstr",
273 NULL,
274 NULL,
275 0,
276 0,
277 0,
288 {"studs",
289 NULL,
290 NULL,
291 0,
292 0,
293 0,
304 {"rhoda",
305 NULL,
306 NULL,
307 0,
308 0,
309 0,
320 {"valerie",
321 NULL,
322 NULL,
323 0,
324 0,
325 0,
336 {"snap",
337 NULL,
338 NULL,
339 0,
340 0,
341 0,
352 {"pt",
353 NULL,
354 NULL,
355 0,
356 0,
357 0,
368 {"mg",
369 NULL,
370 NULL,
371 0,
372 0,
373 0,
384 {"bu",
385 NULL,
386 NULL,
387 0,
388 0,
389 0,
400 {"ml",
401 NULL,
402 NULL,
403 0,
404 0,
405 0,
416 {"nu",
417 NULL,
418 NULL,
419 0,
420 0,
421 0,
432 {"na",
433 NULL,
434 NULL,
435 0,
436 0,
437 0,
448 {"cl",
449 NULL,
450 NULL,
451 0,
452 0,
453 0,
464 {"en",
465 NULL,
466 NULL,
467 0,
468 0,
469 0,
480 {"re",
481 NULL,
482 NULL,
483 0,
484 0,
485 0,
496 {"ro",
497 NULL,
498 NULL,
499 0,
500 0,
501 0,
512 {"d1",
513 NULL,
514 NULL,
515 0,
516 0,
517 0,
528 {"d2",
529 NULL,
530 NULL,
531 0,
532 0,
533 0,
544 {"d3",
545 NULL,
546 NULL,
547 0,
548 0,
549 0,
560 {"d4",
561 NULL,
562 NULL,
563 0,
564 0,
565 0,
576 {"l1",
577 NULL,
578 NULL,
579 0,
580 0,
581 0,
592 {"l2",
593 NULL,
594 NULL,
595 0,
596 0,
597 0,
608 {"l3",
609 NULL,
610 NULL,
611 0,
612 0,
613 0,
624 {"l4",
625 NULL,
626 NULL,
627 0,
628 0,
629 0,
640 {"l5",
641 NULL,
642 NULL,
643 0,
644 0,
645 0,
656 {"l6",
657 NULL,
658 NULL,
659 0,
660 0,
661 0,
672 {"b1",
673 NULL,
674 NULL,
675 0,
676 0,
677 0,
688 {"b2",
689 NULL,
690 NULL,
691 0,
692 0,
693 0,
704 {"b3",
705 NULL,
706 NULL,
707 0,
708 0,
709 0,
720 {"b4",
721 NULL,
722 NULL,
723 0,
724 0,
725 0,
736 {"cm",
737 NULL,
738 NULL,
739 0,
740 0,
741 0,
752 {"gd",
753 NULL,
754 NULL,
755 0,
756 0,
757 0,
768 {"rd",
769 NULL,
770 NULL,
771 0,
772 0,
773 0,
784 {"pg",
785 NULL,
786 NULL,
787 0,
788 0,
789 0,
800 {"bd",
801 NULL,
802 NULL,
803 0,
804 0,
805 0,
816 {"sy",
817 NULL,
818 NULL,
819 0,
820 0,
821 0,
832 {"gn",
833 NULL,
834 NULL,
835 0,
836 0,
837 0,
848 {"df",
849 NULL,
850 NULL,
851 0,
852 0,
853 0,
864 {"bs",
865 NULL,
866 NULL,
867 0,
868 0,
869 0,
880 {"lt",
881 NULL,
882 NULL,
883 0,
884 0,
885 0,
896 {"st",
897 NULL,
898 NULL,
899 0,
900 0,
901 0,
912 {"bm",
913 NULL,
914 NULL,
915 0,
916 0,
917 0,
928 {"jk",
929 NULL,
930 NULL,
931 0,
932 0,
933 0,
944 {"ghost",
945 NULL,
946 NULL,
947 0,
948 0,
949 0,
960 {"ghost01",
961 NULL,
962 NULL,
963 0,
964 0,
965 0,
976 {"ghost02",
977 NULL,
978 NULL,
979 0,
980 0,
981 0,
992 {"ghost03",
993 NULL,
994 NULL,
995 0,
996 0,
997 0,
1008 {"ghost04",
1009 NULL,
1010 NULL,
1011 0,
1012 0,
1013 0,
1024 {"ghost05",
1025 NULL,
1026 NULL,
1027 0,
1028 0,
1029 0,
1040 {"hg",
1041 NULL,
1042 NULL,
1043 0,
1044 0,
1045 0,
1056 {"pntgy",
1057 NULL,
1058 NULL,
1059 0,
1060 0,
1061 0,
1072 {"pep",
1073 NULL,
1074 NULL,
1075 0,
1076 0,
1077 0,
1088 {"cop01",
1089 NULL,
1090 NULL,
1091 0,
1092 0,
1093 0,
1104 {"actor_01",
1105 NULL,
1106 NULL,
1107 0,
1108 0,
1109 0,
1120 {"actor_02",
1121 NULL,
1122 NULL,
1123 0,
1124 0,
1125 0,
1136 {"actor_03",
1137 NULL,
1138 NULL,
1139 0,
1140 0,
1141 0,
1152 {"actor_04",
1153 NULL,
1154 NULL,
1155 0,
1156 0,
1157 0,
1168 {"actor_05",
1169 NULL,
1170 NULL,
1171 0,
1172 0,
1173 0,
1184 {"btmncycl",
1185 NULL,
1186 NULL,
1187 0,
1188 0,
1189 0,
1200 {"cboycycl",
1201 NULL,
1202 NULL,
1203 0,
1204 0,
1205 0,
1216 {"boatman",
1217 NULL,
1218 NULL,
1219 0,
1220 0,
1221 0,
1232};
#define DECOMP_SIZE_ASSERT(T, S)
Definition: decomp.h:19
MxU8 g_unk0x100da7e0[]
Definition: legoactors.cpp:117
MxU8 g_unk0x100da810[]
Definition: legoactors.cpp:124
const char * g_unk0x100f80a0[]
Definition: legoactors.cpp:171
const char * g_unk0x100f7fd8[]
Definition: legoactors.cpp:141
const char * g_unk0x100f7f78[]
Definition: legoactors.cpp:136
MxU8 g_unk0x100da830[]
Definition: legoactors.cpp:130
MxU8 g_unk0x100da820[]
Definition: legoactors.cpp:127
LegoActorInfo g_actorInfoInit[]
[AI] Global initialization table for the 66 actor types in the game, each entry describing all key as...
Definition: legoactors.cpp:175
MxU8 g_unk0x100da790[]
Definition: legoactors.cpp:99
MxU8 g_unk0x100da7a8[]
Definition: legoactors.cpp:102
MxU8 g_unk0x100da800[]
Definition: legoactors.cpp:121
MxU8 g_unk0x100da778[]
Definition: legoactors.cpp:96
const char * g_unk0x100f8068[]
Definition: legoactors.cpp:153
MxU8 g_unk0x100da7b0[]
Definition: legoactors.cpp:108
MxU8 g_unk0x100da840[]
Definition: legoactors.cpp:133
MxU8 g_unk0x100da7ac[]
Definition: legoactors.cpp:105
LegoActorLOD g_actorLODs[]
[AI] Array of 11 LOD definitions which describe the conventions for actor part hierarchy and bounding...
Definition: legoactors.cpp:10
MxU8 g_unk0x100da7c0[]
Definition: legoactors.cpp:111
MxU8 g_unk0x100da7d0[]
Definition: legoactors.cpp:114
const char * g_unk0x100f7ff8[]
Definition: legoactors.cpp:145
#define NULL
[AI] Null pointer value (C/C++ semantics).
Definition: legotypes.h:26
unsigned char MxU8
[AI]
Definition: mxtypes.h:8
[AI] Contains information about a single LEGO actor/character, including its name,...
Definition: legoactors.h:13
[AI] Describes a single Level-of-Detail (LOD) variant for an actor part, including bounds and orienta...
Definition: legoactors.h:37
@ c_flag2
[AI] Used to denote a secondary special flag (usage determined by implementation)....
Definition: legoactors.h:41
@ c_flag1
[AI] Used to denote special processing/class of LOD part (see usage in creation routines)....
Definition: legoactors.h:40