- Augmentat el nom dels actor a 16 caràcters

- Augmentat els flags dels actors a 16 bits
- Afegit flag NOEDITOR per a ocultar les portes del editor
- Per ara eixim amb ESC, mes fàcil
This commit is contained in:
2023-09-21 07:58:34 +02:00
parent ea10524b10
commit 2f1ae09676
4 changed files with 17 additions and 11 deletions

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@
*.dll *.dll
.vscode/* .vscode/*
thepool thepool
thepool_debug

View File

@@ -12,6 +12,7 @@
#define FLAG_ORIENTABLE 32 #define FLAG_ORIENTABLE 32
#define FLAG_DEADLY 64 #define FLAG_DEADLY 64
#define FLAG_GRAVITY 128 #define FLAG_GRAVITY 128
#define FLAG_NOEDITOR 256
#define PUSH_NONE 0 #define PUSH_NONE 0
#define PUSH_XP 1 #define PUSH_XP 1
@@ -34,7 +35,7 @@ namespace actor
{ {
struct actor_t struct actor_t
{ {
char name[8]; char name[16];
draw::surface *surface; draw::surface *surface;
SDL_Rect bmp_rect; SDL_Rect bmp_rect;
SDL_Point bmp_offset; SDL_Point bmp_offset;
@@ -48,7 +49,7 @@ namespace actor
uint8_t anim_wait; uint8_t anim_wait;
uint8_t anim_wait_count; uint8_t anim_wait_count;
uint8_t flags; uint16_t flags;
uint8_t push; uint8_t push;
uint8_t react_mask; uint8_t react_mask;

View File

@@ -103,6 +103,8 @@ int section = 0;
bool game::loop() bool game::loop()
{ {
if (input::keyDown(SDL_SCANCODE_ESCAPE)) return false;
actor::update(actor::getFirst()); actor::update(actor::getFirst());
actor::reorder(); actor::reorder();
@@ -145,12 +147,14 @@ bool game::loop()
int line = 0; int line = 0;
actor::actor_t *act = actor::getFirst(); actor::actor_t *act = actor::getFirst();
while (act) { while (act) {
if ((act->flags&FLAG_NOEDITOR)!=FLAG_NOEDITOR) {
if (act==actor::getSelected()) { if (act==actor::getSelected()) {
draw::color(TEAL); draw::color(TEAL);
draw::fillrect(330, 40+line*8, 50, 8); draw::fillrect(330, 40+line*8, 50, 8);
} }
draw::print(act->name, 330, 40+line*8, WHITE, BLACK); draw::print(act->name, 330, 40+line*8, WHITE, BLACK);
line++; line++;
}
act = act->next; act = act->next;
} }
break; break;

View File

@@ -60,10 +60,10 @@ namespace room
{ {
uint8_t actual_floor = door_height[2]>0?0:floor_type*32; 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}); 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});
act->flags = FLAG_NONE; act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true); 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", {actual_floor,1,32,15}, {0,15+door_height[2]*8});
act->flags = FLAG_NONE; act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true); actor::setDirty(act, true);
} }
@@ -71,10 +71,10 @@ namespace room
{ {
uint8_t actual_floor = door_height[0]>0?0:floor_type*32; 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}); 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});
act->flags = FLAG_NONE; act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true); 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", {actual_floor,1,32,15}, {0,15+door_height[0]*8});
act->flags = FLAG_NONE; act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true); actor::setDirty(act, true);
} }
} }