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 | } |