mirror of
https://github.com/mwpenny/portal64-still-alive.git
synced 2024-10-20 10:37:37 -04:00
Fix some small portal rendering bugs
This commit is contained in:
parent
8ff28b0c11
commit
55142fe61c
|
@ -142,7 +142,6 @@ That will generate the rom at `/build/portal64.z64`
|
||||||
|
|
||||||
## Current New Feature TODO List
|
## Current New Feature TODO List
|
||||||
- [ ] chell is short sometimes
|
- [ ] chell is short sometimes
|
||||||
- [ ] near clipping plane when touching portals
|
|
||||||
- [ ] ball velocity in test chamber 11
|
- [ ] ball velocity in test chamber 11
|
||||||
- [ ] clear sleeping object physics flag so buttons in savefiles remain pressed after loading
|
- [ ] clear sleeping object physics flag so buttons in savefiles remain pressed after loading
|
||||||
- [ ] rumble pak support?
|
- [ ] rumble pak support?
|
||||||
|
@ -151,6 +150,7 @@ That will generate the rom at `/build/portal64.z64`
|
||||||
- [ ] Correct elevator timing
|
- [ ] Correct elevator timing
|
||||||
- [ ] Adding loading notice between levels #45
|
- [ ] Adding loading notice between levels #45
|
||||||
- [ ] pausing while glados is speaking can end her speech early
|
- [ ] pausing while glados is speaking can end her speech early
|
||||||
|
- [x] near clipping plane when touching portals git
|
||||||
- [x] investigate failed portal hole in test chamber 04
|
- [x] investigate failed portal hole in test chamber 04
|
||||||
- [x] Change default controls
|
- [x] Change default controls
|
||||||
- [x] Add particle effects (shooting portal gun, energy pellet)
|
- [x] Add particle effects (shooting portal gun, energy pellet)
|
||||||
|
|
|
@ -101,13 +101,15 @@ void playerRender(void* data, struct DynamicRenderDataList* renderList, struct R
|
||||||
gSPDisplayList(dl++, player->armature.displayList);
|
gSPDisplayList(dl++, player->armature.displayList);
|
||||||
gSPEndDisplayList(dl++);
|
gSPEndDisplayList(dl++);
|
||||||
|
|
||||||
dynamicRenderListAddData(
|
|
||||||
|
dynamicRenderListAddDataTouchingPortal(
|
||||||
renderList,
|
renderList,
|
||||||
objectRender,
|
objectRender,
|
||||||
matrix,
|
matrix,
|
||||||
DEFAULT_INDEX,
|
DEFAULT_INDEX,
|
||||||
&player->body.transform.position,
|
&player->body.transform.position,
|
||||||
armature
|
armature,
|
||||||
|
player->body.flags
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,7 @@ void dynamicRenderListAddDataTouchingPortal(
|
||||||
}
|
}
|
||||||
|
|
||||||
float finalTransform[4][4];
|
float finalTransform[4][4];
|
||||||
guMtxCatF(transformAsFloat, list->portalTransforms[1 - touchingPortalIndex], finalTransform);
|
guMtxCatF(transformAsFloat, list->portalTransforms[touchingPortalIndex], finalTransform);
|
||||||
|
|
||||||
guMtxF2L(finalTransform, mtx);
|
guMtxF2L(finalTransform, mtx);
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ void dynamicRenderListAddDataTouchingPortal(
|
||||||
|
|
||||||
next->model = model;
|
next->model = model;
|
||||||
next->transform = mtx;
|
next->transform = mtx;
|
||||||
transformPoint(collisionSceneTransformToPortal(1 - touchingPortalIndex), position, &next->position);
|
transformPoint(collisionSceneTransformToPortal(touchingPortalIndex), position, &next->position);
|
||||||
next->armature = armature;
|
next->armature = armature;
|
||||||
next->materialIndex = materialIndex;
|
next->materialIndex = materialIndex;
|
||||||
next->renderStageCullingMask = childCullingMask;
|
next->renderStageCullingMask = childCullingMask;
|
||||||
|
|
|
@ -337,6 +337,10 @@ int renderShouldRenderOtherPortal(struct Scene* scene, int visiblePortal, struct
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((scene->player.body.flags & (RigidBodyIsTouchingPortalA << visiblePortal)) != 0 && properties->currentDepth == STARTING_RENDER_DEPTH) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
struct Portal* portal = &scene->portals[visiblePortal];
|
struct Portal* portal = &scene->portals[visiblePortal];
|
||||||
struct BoundingBoxs16 portalBox;
|
struct BoundingBoxs16 portalBox;
|
||||||
portalBox.minX = (s16)(portal->collisionObject.boundingBox.min.x * SCENE_SCALE);
|
portalBox.minX = (s16)(portal->collisionObject.boundingBox.min.x * SCENE_SCALE);
|
||||||
|
|
Loading…
Reference in a new issue