- [FIX] Les portes frontals no tenien l'altura adequada

- [FIX] El piso de les portes frontals no es calculaba correctament
- [CHG] Ara RAND també canvia de direcció després de un temps random
- [FIX] Al crear un nou actor el editor no se ficava en mode SECTION_ACTOR
- [NEW] Al pulsar on no hi ha actors ara se fica en mode SECTION_ROOM
- [FIX] Quan estem en mode SECTION_ROOM no s'ha de vore un actor seleccionat
- Més habitacions. Zona 3 acabada, començant zona 4
This commit is contained in:
2024-09-26 13:51:10 +02:00
parent 1d85db4052
commit 8c639f2330
20 changed files with 960 additions and 16 deletions

View File

@@ -88,30 +88,36 @@ namespace room
if (doors & DOOR_YP)
{
uint8_t actual_floor = door_height[2]>0?0:floor_type*32;
actor::actor_t *act = actor::create("DOOR_YP1", {24,(tmax.y+1)*8,0}, {8,8,(door_height[2])*4}, "floor.gif", {actual_floor,1,32,15}, {0,15+door_height[2]*8});
const int floor_row_tiles = int(floor_surf->w/32);
const uint8_t actual_floor = door_height[2]>0?0:floor_type;
int floor_x = (actual_floor%floor_row_tiles)*32;
int floor_y = int(actual_floor/floor_row_tiles)*16;
actor::actor_t *act = actor::create("DOOR_YP1", {24,(tmax.y+1)*8,0}, {8,8,(door_height[2])*4}, "floor.gif", {floor_x,floor_y+1,32,15}, {0,15+door_height[2]*8});
act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true);
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 = actor::create("DOOR_YP2", {32,(tmax.y+1)*8,0}, {8,8,(door_height[2])*4}, "floor.gif", {floor_x,floor_y+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 = actor::create("DOOR_YP", {20,(tmax.y+1)*8,1+door_height[2]*4}, {5,4,24}, "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)
{
uint8_t actual_floor = door_height[0]>0?0:floor_type*32;
actor::actor_t *act = actor::create("DOOR_XP1", {(tmax.x+1)*8,24,0}, {8,8,(door_height[0])*4}, "floor.gif", {actual_floor,1,32,15}, {0,15+door_height[0]*8});
const int floor_row_tiles = int(floor_surf->w/32);
const uint8_t actual_floor = door_height[0]>0?0:floor_type;
int floor_x = (actual_floor%floor_row_tiles)*32;
int floor_y = int(actual_floor/floor_row_tiles)*16;
actor::actor_t *act = actor::create("DOOR_XP1", {(tmax.x+1)*8,24,0}, {8,8,(door_height[0])*4}, "floor.gif", {floor_x,floor_y+1,32,15}, {0,15+door_height[0]*8});
act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true);
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 = actor::create("DOOR_XP2", {(tmax.x+1)*8,32,0}, {8,8,(door_height[0])*4}, "floor.gif", {floor_x,floor_y+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 = actor::create("DOOR_XP", {(tmax.x+1)*8,20,1+door_height[0]*4}, {8,8,24}, "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);