Rev 1 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1 | Rev 18 | ||
|---|---|---|---|
| Line 1... | Line 1... | ||
| 1 | #include "brucetrk.h" |
1 | #include "brucetrk.h" |
| 2 | 2 | ||
| 3 | #include " |
3 | #include "brender.h" |
| 4 | #include "errors.h" |
4 | #include "errors.h" |
| - | 5 | #include "formats.h" |
|
| 5 | #include "globvars.h" |
6 | #include "globvars.h" |
| 6 | #include "globvrbm.h" |
7 | #include "globvrbm.h" |
| 7 | #include "harness/trace.h" |
8 | #include "harness/trace.h" |
| 8 | #include "init.h" |
9 | #include "init.h" |
| 9 | #include "pd/sys.h" |
10 | #include "pd/sys.h" |
| Line 147... | Line 148... | ||
| 147 | } |
148 | } |
| 148 | } |
149 | } |
| 149 | } |
150 | } |
| 150 | 151 | ||
| 151 | // IDA: br_uint_32 __cdecl FindNonCarsCB(br_actor *pActor, tTrack_spec *pTrack_spec) |
152 | // IDA: br_uint_32 __cdecl FindNonCarsCB(br_actor *pActor, tTrack_spec *pTrack_spec) |
| 152 |
|
153 | br_uintptr_t FindNonCarsCB(br_actor* pActor, tTrack_spec* pTrack_spec) { |
| 153 | int i; |
154 | int i; |
| 154 | br_scalar r1; |
155 | br_scalar r1; |
| 155 | br_scalar r2; |
156 | br_scalar r2; |
| 156 | br_scalar r3; |
157 | br_scalar r3; |
| 157 | LOG_TRACE("(%p, %p)", pActor, pTrack_spec); |
158 | LOG_TRACE("(%p, %p)", pActor, pTrack_spec); |
| Line 193... | Line 194... | ||
| 193 | return BrActorEnum(pActor, (br_actor_enum_cbfn*)FindNonCarsCB, pTrack_spec); |
194 | return BrActorEnum(pActor, (br_actor_enum_cbfn*)FindNonCarsCB, pTrack_spec); |
| 194 | } |
195 | } |
| 195 | } |
196 | } |
| 196 | 197 | ||
| 197 | // IDA: br_uint_32 __cdecl ProcessModelsCB(br_actor *pActor, tTrack_spec *pTrack_spec) |
198 | // IDA: br_uint_32 __cdecl ProcessModelsCB(br_actor *pActor, tTrack_spec *pTrack_spec) |
| 198 |
|
199 | br_uintptr_t ProcessModelsCB(br_actor* pActor, tTrack_spec* pTrack_spec) { |
| 199 | unsigned int x; |
200 | unsigned int x; |
| 200 | unsigned int z; |
201 | unsigned int z; |
| 201 | int group; |
202 | int group; |
| 202 | LOG_TRACE("(%p, %p)", pActor, pTrack_spec); |
203 | LOG_TRACE("(%p, %p)", pActor, pTrack_spec); |
| 203 | 204 | ||
| Line 210... | Line 211... | ||
| 210 | } |
211 | } |
| 211 | BrActorEnum(pActor, (br_actor_enum_cbfn*)FindNonCarsCB, pTrack_spec); |
212 | BrActorEnum(pActor, (br_actor_enum_cbfn*)FindNonCarsCB, pTrack_spec); |
| 212 | if (gMr_blendy) { |
213 | if (gMr_blendy) { |
| 213 | BrActorAdd(pActor, gMr_blendy); |
214 | BrActorAdd(pActor, gMr_blendy); |
| 214 | BrModelAdd(gMr_blendy->model); |
215 | BrModelAdd(gMr_blendy->model); |
| 215 | for (group = 0; V11MODEL(gMr_blendy->model)->ngroups |
216 | for (group = 0; group < V11MODEL(gMr_blendy->model)->ngroups; group++) { |
| 216 | V11MODEL(gMr_blendy->model)->groups[group]. |
217 | V11MODEL(gMr_blendy->model)->groups[group].user = gMr_blendy->model->faces[*V11MODEL(gMr_blendy->model)->groups[group].face_user].material; |
| 217 | } |
218 | } |
| 218 | gMr_blendy->model->flags &= ~BR_MODF_UPDATEABLE; |
219 | gMr_blendy->model->flags &= ~BR_MODF_UPDATEABLE; |
| 219 | DodgyModelUpdate(gMr_blendy->model); |
220 | DodgyModelUpdate(gMr_blendy->model); |
| 220 | pTrack_spec->blends[z][x] = gMr_blendy; |
221 | pTrack_spec->blends[z][x] = gMr_blendy; |
| 221 | } |
222 | } |
| Line 267... | Line 268... | ||
| 267 | } |
268 | } |
| 268 | pTrack_spec->ncolumns_x = x; |
269 | pTrack_spec->ncolumns_x = x; |
| 269 | pTrack_spec->ncolumns_z = z; |
270 | pTrack_spec->ncolumns_z = z; |
| 270 | 271 | ||
| 271 | BrActorToBounds(&bounds, pTrack_spec->the_actor); |
272 | BrActorToBounds(&bounds, pTrack_spec->the_actor); |
| 272 | pTrack_spec->column_size_x = |
273 | pTrack_spec->column_size_x = (bounds.max.v[0] - bounds.min.v[0] + extra_room * 2.0) / (double)pTrack_spec->ncolumns_x; |
| 273 | pTrack_spec->column_size_z = |
274 | pTrack_spec->column_size_z = (bounds.max.v[2] - bounds.min.v[2] + extra_room * 2.0) / (double)pTrack_spec->ncolumns_z; |
| 274 | pTrack_spec->origin_x = bounds.min.v[0] - extra_room; |
275 | pTrack_spec->origin_x = bounds.min.v[0] - extra_room; |
| 275 | pTrack_spec->origin_z = bounds.min.v[2] - extra_room; |
276 | pTrack_spec->origin_z = bounds.min.v[2] - extra_room; |
| 276 | AllocateActorMatrix(pTrack_spec, &pTrack_spec->columns); |
277 | AllocateActorMatrix(pTrack_spec, &pTrack_spec->columns); |
| 277 | AllocateActorMatrix(pTrack_spec, &pTrack_spec->lollipops); |
278 | AllocateActorMatrix(pTrack_spec, &pTrack_spec->lollipops); |
| 278 | AllocateActorMatrix(pTrack_spec, &pTrack_spec->blends); |
279 | AllocateActorMatrix(pTrack_spec, &pTrack_spec->blends); |
| Line 305... | Line 306... | ||
| 305 | pActor->t.t.mat.m[0][2] = pActor->t.t.mat.m[2][1] * pActor->t.t.mat.m[1][0] |
306 | pActor->t.t.mat.m[0][2] = pActor->t.t.mat.m[2][1] * pActor->t.t.mat.m[1][0] |
| 306 | - pActor->t.t.mat.m[1][1] * pActor->t.t.mat.m[2][0]; |
307 | - pActor->t.t.mat.m[1][1] * pActor->t.t.mat.m[2][0]; |
| 307 | } |
308 | } |
| 308 | 309 | ||
| 309 | // IDA: br_uint_32 __cdecl LollipopizeChildren(br_actor *pActor, void *pArg) |
310 | // IDA: br_uint_32 __cdecl LollipopizeChildren(br_actor *pActor, void *pArg) |
| 310 |
|
311 | br_uintptr_t LollipopizeChildren(br_actor* pActor, void* pArg) { |
| 311 | tMatrix_and_actor* maa; |
312 | tMatrix_and_actor* maa; |
| 312 | LOG_TRACE("(%p, %p)", pActor, pArg); |
313 | LOG_TRACE("(%p, %p)", pActor, pArg); |
| 313 | 314 | ||
| 314 | maa = pArg; |
315 | maa = pArg; |
| 315 | LollipopizeActor4(pActor, maa->m, maa->a); |
316 | LollipopizeActor4(pActor, maa->m, maa->a); |
| Line 373... | Line 374... | ||
| 373 | column_z2 = column_z; |
374 | column_z2 = column_z; |
| 374 | } |
375 | } |
| 375 | if (pDraw_blends) { |
376 | if (pDraw_blends) { |
| 376 | blended_polys = pTrack_spec->blends[column_z2][column_x2]; |
377 | blended_polys = pTrack_spec->blends[column_z2][column_x2]; |
| 377 | if (blended_polys) { |
378 | if (blended_polys) { |
| 378 | blended_polys->render_style = |
379 | blended_polys->render_style = BR_RSTYLE_FACES; |
| 379 | BrZbSceneRenderAdd(blended_polys); |
380 | BrZbSceneRenderAdd(blended_polys); |
| 380 | blended_polys->render_style = |
381 | blended_polys->render_style = BR_RSTYLE_NONE; |
| 381 | } |
382 | } |
| 382 | } else { |
383 | } else { |
| 383 | if (pTrack_spec->columns[column_z2][column_x2]) { |
384 | if (pTrack_spec->columns[column_z2][column_x2]) { |
| 384 | BrZbSceneRenderAdd(pTrack_spec->columns[column_z2][column_x2]); |
385 | BrZbSceneRenderAdd(pTrack_spec->columns[column_z2][column_x2]); |
| 385 | } |
386 | } |