- [FIX] No es podien crear habitacions noves amb el shortcut

- [FIX] Reposicionament de l'heroi al provar una habitacio amb l'editor (encara no va be)
- [FIX] MOV_RANDV no apareixia a l'editor
- [FIX] MOV_HUNT no nomes s'actualitza al tropeçar
- [FIX] MOV_HUNT petava el mame si l'heroi moria
- [NEW] Alguns gràfics més
- Zona 1 acabada
This commit is contained in:
2024-07-31 11:36:19 +02:00
parent aa8013082f
commit 1383378a19
9 changed files with 567 additions and 169 deletions

View File

@@ -709,10 +709,15 @@ namespace actor
break;
case MOV_HUNT:
actor_t *heroi = find("HERO");
if (heroi->pos.x < act->pos.x) act->mov_push=PUSH_XN;
if (heroi->pos.x > act->pos.x) act->mov_push=PUSH_XP;
if (heroi->pos.y < act->pos.y) act->mov_push=PUSH_YN;
if (heroi->pos.y > act->pos.y) act->mov_push=PUSH_YP;
if (heroi)
{
int tombola[2]; int tombola_pos = 0;
if (heroi->pos.x < act->pos.x) tombola[tombola_pos++]=PUSH_XN;
if (heroi->pos.x > act->pos.x) tombola[tombola_pos++]=PUSH_XP;
if (heroi->pos.y < act->pos.y) tombola[tombola_pos++]=PUSH_YN;
if (heroi->pos.y > act->pos.y) tombola[tombola_pos++]=PUSH_YP;
act->mov_push=tombola[rand()%tombola_pos];
}
break;
}
if (act->flags & FLAG_ORIENTABLE) act->orient = act->mov_push;
@@ -1006,7 +1011,10 @@ namespace actor
}
if (act->flags & FLAG_HERO) updateUserInput(act);
if (act->flags & FLAG_MOVING) updateMoving(act);
if (act->flags & FLAG_MOVING) {
if (act->movement==MOV_HUNT && ( (act->pos.x&7)==0 || (act->pos.y&7)==0) ) changeMoving(act);
updateMoving(act);
}
if (act->flags & FLAG_GRAVITY) act->push |= PUSH_ZN;
//if (act->flags & FLAG_PUSHABLE)

View File

@@ -393,27 +393,28 @@ namespace modules
if (mx>=0 && my>=0 && mx<320 && my<240) {
if (mx<32 && my<24) {
int room = room::editor::refExit(XN);
if (room>=0 || input::keyPressed(SDL_SCANCODE_LCTRL)) room::load(room, XP);
if (room>=0 || input::keyDown(SDL_SCANCODE_LCTRL)) room::load(room, XP);
}
if (mx>288 && my<24) {
int room = room::editor::refExit(YN);
if (room>=0 || input::keyPressed(SDL_SCANCODE_LCTRL)) room::load(room, YP);
if (room>=0 || input::keyDown(SDL_SCANCODE_LCTRL)) room::load(room, YP);
}
if (mx>288 && my>216) {
int room = room::editor::refExit(XP);
if (room>=0 || input::keyPressed(SDL_SCANCODE_LCTRL)) room::load(room, XN);
if (room>=0 || input::keyDown(SDL_SCANCODE_LCTRL)) room::load(room, XN);
}
if (mx<32 && my>216) {
int room = room::editor::refExit(YP);
if (room>=0 || input::keyPressed(SDL_SCANCODE_LCTRL)) room::load(room, YN);
if (room>=0 || input::keyDown(SDL_SCANCODE_LCTRL))
room::load(room, YN);
}
if (mx>144 && mx<176 && my<24) {
int room = room::editor::refExit(ZP);
if (room>=0 || input::keyPressed(SDL_SCANCODE_LCTRL)) room::load(room, ZN);
if (room>=0 || input::keyDown(SDL_SCANCODE_LCTRL)) room::load(room, ZN);
}
if (mx>144 && mx<176 && my>216) {
int room = room::editor::refExit(ZN);
if (room>=0 || input::keyPressed(SDL_SCANCODE_LCTRL)) room::load(room, ZP);
if (room>=0 || input::keyDown(SDL_SCANCODE_LCTRL)) room::load(room, ZP);
}
}
}
@@ -557,7 +558,11 @@ namespace modules
if (ui::button("EDITING", 2, 2, 96, 11, editor::isEditing()))
{
room::load(room::editor::getCurrentRoom());
if (!editor::isEditing()) actor::find("HERO")->pos.z=24;
if (!editor::isEditing())
{
actor::actor_t *hero = actor::find("HERO");
hero->pos.x = hero->pos.y = 32; hero->pos.z = 0;
}
editor::setEditing(!editor::isEditing());
}
@@ -733,7 +738,7 @@ namespace modules
}
line+=10;
changed |= btn_opt("MOVEMNT", 2, line, act->movement, {MOV_NONE, MOV_X, MOV_Y, MOV_Z, MOV_CW, MOV_CCW, MOV_RAND, MOV_HUNT}, {"NONE", "X", "Y", "Z", "CW", "CCW", "RAND", "HUNT"}, 48);
changed |= btn_opt("MOVEMNT", 2, line, act->movement, {MOV_NONE, MOV_X, MOV_Y, MOV_Z, MOV_CW, MOV_CCW, MOV_RAND, MOV_RANDV, MOV_HUNT}, {"NONE", "X", "Y", "Z", "CW", "CCW", "RAND", "RANDV", "HUNT"}, 48);
line+=10;
changed |= btn_opt("ANIMCYC", 2, line, act->anim_cycle, {0, 1, 2}, {"0 1 0 2", "0 1 2 3", "0 1 2"}, 48);
line+=10;