mirror of
https://github.com/luksamuk/engine-psx.git
synced 2025-04-28 13:28:02 +03:00
Remove player hitbox rendering and fix left anchor for sensors
This commit is contained in:
parent
426778ad6e
commit
4e76d2e5aa
2 changed files with 33 additions and 23 deletions
|
@ -72,22 +72,22 @@ static uint8_t player_attacking;
|
|||
|
||||
int player_hitbox_shown;
|
||||
|
||||
void
|
||||
_draw_player_hitbox()
|
||||
{
|
||||
if(player_hitbox_shown) return;
|
||||
player_hitbox_shown = 1;
|
||||
uint16_t
|
||||
rel_vx = player_vx - (camera.pos.vx >> 12) + CENTERX,
|
||||
rel_vy = player_vy - (camera.pos.vy >> 12) + CENTERY;
|
||||
POLY_F4 *hitbox = get_next_prim();
|
||||
increment_prim(sizeof(POLY_F4));
|
||||
setPolyF4(hitbox);
|
||||
setSemiTrans(hitbox, 1);
|
||||
setXYWH(hitbox, rel_vx, rel_vy, 16, player_height);
|
||||
setRGB0(hitbox, 0xfb, 0x94, 0xdc);
|
||||
sort_prim(hitbox, OTZ_LAYER_OBJECTS);
|
||||
}
|
||||
/* void */
|
||||
/* _draw_player_hitbox() */
|
||||
/* { */
|
||||
/* if(player_hitbox_shown) return; */
|
||||
/* player_hitbox_shown = 1; */
|
||||
/* uint16_t */
|
||||
/* rel_vx = player_vx - (camera.pos.vx >> 12) + CENTERX, */
|
||||
/* rel_vy = player_vy - (camera.pos.vy >> 12) + CENTERY; */
|
||||
/* POLY_F4 *hitbox = get_next_prim(); */
|
||||
/* increment_prim(sizeof(POLY_F4)); */
|
||||
/* setPolyF4(hitbox); */
|
||||
/* setSemiTrans(hitbox, 1); */
|
||||
/* setXYWH(hitbox, rel_vx, rel_vy, 16, player_height); */
|
||||
/* setRGB0(hitbox, 0xfb, 0x94, 0xdc); */
|
||||
/* sort_prim(hitbox, OTZ_LAYER_OBJECTS); */
|
||||
/* } */
|
||||
|
||||
void
|
||||
object_update(ObjectState *state, ObjectTableEntry *typedata, VECTOR *pos)
|
||||
|
@ -106,9 +106,9 @@ object_update(ObjectState *state, ObjectTableEntry *typedata, VECTOR *pos)
|
|||
: HEIGHT_RADIUS_NORMAL) << 1;
|
||||
player_vy = (player.pos.vy >> 12) - (player_height >> 1) - 1;
|
||||
|
||||
if(debug_mode > 1) {
|
||||
_draw_player_hitbox();
|
||||
}
|
||||
/* if(debug_mode > 1) { */
|
||||
/* _draw_player_hitbox(); */
|
||||
/* } */
|
||||
|
||||
switch(state->id) {
|
||||
default: break;
|
||||
|
|
18
src/player.c
18
src/player.c
|
@ -447,26 +447,26 @@ _player_update_collision_tb(Player *player)
|
|||
case CDIR_RWALL:
|
||||
grndir = CDIR_RWALL;
|
||||
ceildir = CDIR_LWALL;
|
||||
anchory_left += grn_grnd_dist + 1;
|
||||
anchory_left += grn_grnd_dist;
|
||||
anchory_right -= grn_grnd_dist - 1;
|
||||
break;
|
||||
case CDIR_LWALL:
|
||||
grndir = CDIR_LWALL;
|
||||
ceildir = CDIR_RWALL;
|
||||
anchory_left -= grn_grnd_dist - 1;
|
||||
anchory_right += grn_grnd_dist + 1;
|
||||
anchory_right += grn_grnd_dist;
|
||||
break;
|
||||
case CDIR_CEILING:
|
||||
grndir = CDIR_CEILING;
|
||||
ceildir = CDIR_FLOOR;
|
||||
anchorx_left += grn_grnd_dist - 1;
|
||||
anchorx_right -= grn_grnd_dist + 1;
|
||||
anchorx_right -= grn_grnd_dist;
|
||||
break;
|
||||
case CDIR_FLOOR:
|
||||
default:
|
||||
grndir = CDIR_FLOOR;
|
||||
ceildir = CDIR_CEILING;
|
||||
anchorx_left -= grn_grnd_dist + 1;
|
||||
anchorx_left -= grn_grnd_dist;
|
||||
anchorx_right += grn_grnd_dist - 1;
|
||||
break;
|
||||
};
|
||||
|
@ -515,6 +515,16 @@ _player_update_collision_tb(Player *player)
|
|||
_draw_sensor(anchorx_right, anchory_right,
|
||||
grndir, grn_mag,
|
||||
0x38, 0xff, 0xa2);
|
||||
|
||||
// Ceiling sensors
|
||||
_draw_sensor(anchorx_left, anchory_left,
|
||||
ceildir, ceil_mag,
|
||||
0x00, 0xae, 0xef);
|
||||
_draw_sensor(anchorx_right, anchory_right,
|
||||
ceildir, ceil_mag,
|
||||
0xff, 0xf2, 0x38);
|
||||
|
||||
// Ledge sensor
|
||||
if((player->vel.vz == 0) && (player->gsmode == CDIR_FLOOR)) {
|
||||
_draw_sensor(anchorx, anchory_right,
|
||||
CDIR_FLOOR, LEDGE_SENSOR_MAGNITUDE,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue