- [FIX] Faltaven coses per inicialitzar al crear actors-porta

- [FIX] Les portes ja es veuen com toca respecte al heroi
This commit is contained in:
2024-09-23 13:58:45 +02:00
parent edc8e0b51d
commit 6dc59af774
6 changed files with 45 additions and 37 deletions

View File

@@ -71,6 +71,21 @@ namespace room
//door_height[2] = inner_yp; //YP
//door_height[3] = inner_yn; //YN
if (doors & DOOR_XN)
{
actor::actor_t *act = actor::create("DOOR_XN", {4+(tmin.x-1)*8,37,1+door_height[1]*4}, {4,4,1}, "doors.gif", {24+(doors_type%6)*40,(doors_type/6)*59,8,59}, {-18,65});
act->flags = FLAG_NOEDITOR | FLAG_ORIENTABLE;
act->orient = PUSH_YP;
actor::setDirty(act, true);
}
if (doors & DOOR_YN)
{
actor::actor_t *act = actor::create("DOOR_YN", {34,4+(tmin.y-1)*8,1+door_height[3]*4}, {5,4,1}, "doors.gif", {24+(doors_type%6)*40,(doors_type/6)*59,8,59}, {-12,63});
act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true);
}
if (doors & DOOR_YP)
{
uint8_t actual_floor = door_height[2]>0?0:floor_type*32;
@@ -80,6 +95,10 @@ namespace room
act = actor::create("DOOR_YP2", {32,(tmax.y+1)*8,0}, {8,8,(door_height[2])*4}, "floor.gif", {actual_floor,1,32,15}, {0,15+door_height[2]*8});
act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true);
act = actor::create("DOOR_YP", {20,(tmax.y+1)*8,1+door_height[2]*4}, {5,4,1}, "doors.gif", {(doors_type%6)*40,(doors_type/6)*59,16,48}, {-16,49});
act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true);
}
if (doors & DOOR_XP)
@@ -91,6 +110,11 @@ namespace room
act = actor::create("DOOR_XP2", {(tmax.x+1)*8,32,0}, {8,8,(door_height[0])*4}, "floor.gif", {actual_floor,1,32,15}, {0,15+door_height[0]*8});
act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true);
act = actor::create("DOOR_XP", {(tmax.x+1)*8,20,1+door_height[0]*4}, {8,8,1}, "doors.gif", {(doors_type%6)*40,(doors_type/6)*59,16,48}, {0,49});
act->flags = FLAG_NOEDITOR | FLAG_ORIENTABLE;
act->orient = PUSH_YP;
actor::setDirty(act, true);
}
actor::reorder();
@@ -268,8 +292,12 @@ namespace room
void update()
{
actor::remove(actor::find("DOOR_XN"));
actor::remove(actor::find("DOOR_YN"));
actor::remove(actor::find("DOOR_XP"));
actor::remove(actor::find("DOOR_XP1"));
actor::remove(actor::find("DOOR_XP2"));
actor::remove(actor::find("DOOR_YP"));
actor::remove(actor::find("DOOR_YP1"));
actor::remove(actor::find("DOOR_YP2"));
@@ -419,7 +447,7 @@ namespace room
// Pintem la porta YP
draw::setSource(doors_surf);
draw::draw(164+3*16-8-(tmax.y+1)*16, -door_height[2]*8+32+3*8+4+(tmax.y+1)*8,40,59,doors_x,doors_y);
draw::draw(16+164+3*16-8-(tmax.y+1)*16, -door_height[2]*8+32+3*8+4+(tmax.y+1)*8,24,59,doors_x+16,doors_y);
}
if (doors & DOOR_XP)
{
@@ -436,7 +464,7 @@ namespace room
// Pintem la porta XP
draw::setSource(doors_surf);
draw::draw( 164+(tmax.x+1)*16-4*16-16, -door_height[0]*8+32+3*8+4+(tmax.x+1)*8, 40,59, doors_x,doors_y, DRAW_FLIP_HORIZONTAL);
draw::draw( 164+(tmax.x+1)*16-4*16-16, -door_height[0]*8+32+3*8+4+(tmax.x+1)*8, 24,59, doors_x+16,doors_y, DRAW_FLIP_HORIZONTAL);
}
draw::popSource();
}