Add portal indicators to portal gun
This commit is contained in:
parent
fba8e29cf7
commit
b1e606ce3a
|
@ -0,0 +1 @@
|
|||
-crop 64x32+141+277 -resize 32x16
|
|
@ -6,11 +6,31 @@ materials:
|
|||
b: 255
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
clear: [G_ZBUFFER]
|
||||
gDPSetCombineMode:
|
||||
color: ["PRIMITIVE", "0", "SHADE", "0"]
|
||||
gDPSetRenderMode: G_RM_OPA_SURF
|
||||
gDPSetCycleType: G_CYC_1CYCLE
|
||||
|
||||
portal_gun_flare:
|
||||
gDPSetTile:
|
||||
filename: ../../portal_pak_modified/materials/sprites/grav_flare.png
|
||||
fmt: G_IM_FMT_RGBA
|
||||
siz: G_IM_SIZ_32b
|
||||
s:
|
||||
mirror: true
|
||||
t:
|
||||
mirror: true
|
||||
tmem: 256
|
||||
|
||||
gDPSetRenderMode: G_RM_XLU_SURF
|
||||
gDPSetCycleType: G_CYC_1CYCLE
|
||||
|
||||
gDPSetCombineMode:
|
||||
color: ["TEXEL0", "0", "ENVIRONMENT", "0"]
|
||||
alpha: ["0", "0", "0", "TEXEL0"]
|
||||
gSPGeometryMode:
|
||||
clear: [G_CULL_BACK, G_CULL_FRONT, G_TEXTURE_GEN, G_SHADE, G_LIGHTING]
|
||||
|
||||
portal_gun_metal:
|
||||
gDPSetTile:
|
||||
|
@ -23,6 +43,7 @@ materials:
|
|||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_TEXTURE_GEN, G_SHADE, G_CULL_BACK]
|
||||
clear: [G_ZBUFFER]
|
||||
|
||||
gDPSetCombineMode:
|
||||
- color: ["PRIMITIVE", "0", "SHADE", "0"]
|
||||
|
@ -58,7 +79,7 @@ materials:
|
|||
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_TEXTURE_GEN, G_SHADE]
|
||||
clear: [G_CULL_BACK]
|
||||
clear: [G_CULL_BACK, G_ZBUFFER]
|
||||
|
||||
gDPSetCombineMode:
|
||||
color: ["PRIMITIVE", "0", "SHADE", "TEXEL0"]
|
||||
|
@ -67,6 +88,23 @@ materials:
|
|||
gDPSetRenderMode: G_RM_XLU_SURF
|
||||
gDPSetCycleType: G_CYC_1CYCLE
|
||||
|
||||
portal_gun_shell:
|
||||
gDPSetTile:
|
||||
filename: ../../portal_pak_modified/materials/models/weapons/v_models/v_portalgun/v_portalgun.png
|
||||
fmt: G_IM_FMT_RGBA
|
||||
siz: G_IM_SIZ_16b
|
||||
s:
|
||||
wrap: false
|
||||
t:
|
||||
wrap: false
|
||||
gSPGeometryMode:
|
||||
set: [G_LIGHTING, G_SHADE, G_CULL_BACK]
|
||||
clear: [G_TEXTURE_GEN, G_ZBUFFER]
|
||||
gDPSetCombineMode:
|
||||
color: ["SHADE", "0", "TEXEL0", "0"]
|
||||
|
||||
gDPSetRenderMode: G_RM_OPA_SURF
|
||||
|
||||
button_base:
|
||||
gDPSetTile:
|
||||
- null
|
||||
|
|
Binary file not shown.
|
@ -18,9 +18,9 @@
|
|||
|
||||
#define PORTAL_GUN_MOI 0.00395833375f
|
||||
|
||||
struct Vector3 gPortalGunOffset = {0.120957, -0.113587, -0.20916};
|
||||
struct Vector3 gPortalGunOffset = {0.100957, -0.093587, -0.20916};
|
||||
struct Vector3 gPortalGunShootOffset = {0.120957, -0.113587, -0.08};
|
||||
struct Vector3 gPortalGunForward = {0.1f, -0.1f, 1.0f};
|
||||
struct Vector3 gPortalGunForward = {0.0f, -0.0f, 1.0f};
|
||||
struct Vector3 gPortalGunShootForward = {0.3f, -0.25f, 1.0f};
|
||||
struct Vector3 gPortalGunUp = {0.0f, 1.0f, 0.0f};
|
||||
|
||||
|
@ -116,7 +116,7 @@ void portalBallRender(struct PortalGunProjectile* projectile, struct RenderState
|
|||
|
||||
extern LookAt gLookAt;
|
||||
|
||||
void portalGunRenderReal(struct PortalGun* portalGun, struct RenderState* renderState, struct Camera* fromCamera, int portalGunVisible) {
|
||||
void portalGunRenderReal(struct PortalGun* portalGun, struct RenderState* renderState, struct Camera* fromCamera, int portalGunVisible, int lastFiredIndex) {
|
||||
struct MaterialState materialState;
|
||||
materialStateInit(&materialState, DEFAULT_INDEX);
|
||||
|
||||
|
@ -146,11 +146,21 @@ void portalGunRenderReal(struct PortalGun* portalGun, struct RenderState* render
|
|||
cameraModifyProjectionViewForPortalGun(fromCamera, renderState, PORTAL_GUN_NEAR_PLANE * SCENE_SCALE, (float)SCREEN_WD / (float)SCREEN_HT);
|
||||
|
||||
gSPLookAt(renderState->dl++, &gLookAt);
|
||||
gDPPipeSync(renderState->dl++);
|
||||
|
||||
if (lastFiredIndex >= 0 && lastFiredIndex <= 1) {
|
||||
struct Coloru8 color = gProjectileColor[lastFiredIndex];
|
||||
gDPSetEnvColor(renderState->dl++, color.r, color.g, color.b, 255);
|
||||
} else {
|
||||
gDPSetEnvColor(renderState->dl++, 255, 255, 255, 255);
|
||||
}
|
||||
|
||||
transformToMatrixL(&portalGun->rigidBody.transform, matrix, 512);
|
||||
gSPMatrix(renderState->dl++, matrix, G_MTX_MODELVIEW | G_MTX_PUSH | G_MTX_MUL);
|
||||
gSPDisplayList(renderState->dl++, portal_gun_v_portalgun_model_gfx);
|
||||
gSPPopMatrix(renderState->dl++, G_MTX_MODELVIEW);
|
||||
|
||||
gSPDisplayList(renderState->dl++, static_default);
|
||||
}
|
||||
|
||||
#define NO_HIT_DISTANCE 20.0f
|
||||
|
|
|
@ -39,7 +39,7 @@ struct PortalGun {
|
|||
void portalGunInit(struct PortalGun* portalGun, struct Transform* at);
|
||||
// void portalGunDummyRender(void* data, struct DynamicRenderDataList* renderList, struct RenderState* renderState);
|
||||
void portalGunUpdate(struct PortalGun* portalGun, struct Player* player);
|
||||
void portalGunRenderReal(struct PortalGun* portalGun, struct RenderState* renderState, struct Camera* fromCamera, int portalGunVisible);
|
||||
void portalGunRenderReal(struct PortalGun* portalGun, struct RenderState* renderState, struct Camera* fromCamera, int portalGunVisible, int lastFiredIndex);
|
||||
|
||||
void portalGunFire(struct PortalGun* portalGun, int portalIndex, struct Ray* ray, struct Vector3* playerUp, int roomIndex);
|
||||
void portalGunFireWorld(struct PortalGun* portalGun, int portalIndex, struct Vector3* from, struct Vector3* to, int roomIndex);
|
||||
|
|
|
@ -308,7 +308,13 @@ void sceneRender(struct Scene* scene, struct RenderState* renderState, struct Gr
|
|||
|
||||
// contactSolverDebugDraw(&gContactSolver, renderState);
|
||||
|
||||
portalGunRenderReal(&scene->portalGun, renderState, &scene->camera, scene->portalGun.portalGunVisible);
|
||||
portalGunRenderReal(
|
||||
&scene->portalGun,
|
||||
renderState,
|
||||
&scene->camera,
|
||||
scene->portalGun.portalGunVisible,
|
||||
scene->hud.lastPortalIndexShot
|
||||
);
|
||||
|
||||
gDPPipeSync(renderState->dl++);
|
||||
gDPSetRenderMode(renderState->dl++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
|
||||
|
|
Loading…
Reference in a new issue