- [NEW][FIX] Ja funcionen correctament tant les eixides per dalt com per baix
This commit is contained in:
@@ -7,6 +7,7 @@ wall-texture: 0
|
|||||||
door-texture: 0
|
door-texture: 0
|
||||||
under-door-texture: 0
|
under-door-texture: 0
|
||||||
exit-xn: 5
|
exit-xn: 5
|
||||||
|
exit-zp: 7
|
||||||
|
|
||||||
actor{
|
actor{
|
||||||
name: YONKI
|
name: YONKI
|
||||||
@@ -53,3 +54,15 @@ actor{
|
|||||||
size: 8 8 8
|
size: 8 8 8
|
||||||
movement: CW
|
movement: CW
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: LIFT
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 32 32 32 24
|
||||||
|
bmp-offset: 0 24
|
||||||
|
pos: 56 0 0
|
||||||
|
size: 8 8 4
|
||||||
|
orient: ZP
|
||||||
|
flags: MOVING
|
||||||
|
movement: Z
|
||||||
|
}
|
||||||
|
|||||||
20
data/rooms/07.txt
Normal file
20
data/rooms/07.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
width: 3
|
||||||
|
height: 3
|
||||||
|
color: CYAN
|
||||||
|
floor-texture: 0
|
||||||
|
wall-texture: 0
|
||||||
|
door-texture: 0
|
||||||
|
under-door-texture: 0
|
||||||
|
exit-zn: 6
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: LIFT
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 32 32 32 24
|
||||||
|
bmp-offset: 0 24
|
||||||
|
pos: 56 0 0
|
||||||
|
size: 8 8 4
|
||||||
|
orient: ZP
|
||||||
|
flags: MOVING
|
||||||
|
movement: Z
|
||||||
|
}
|
||||||
@@ -41,3 +41,15 @@ actor{
|
|||||||
size: 8 8 8
|
size: 8 8 8
|
||||||
movement: CW
|
movement: CW
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: LIFT
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 32 32 32 24
|
||||||
|
bmp-offset: 0 24
|
||||||
|
pos: 56 0 0
|
||||||
|
size: 8 8 4
|
||||||
|
orient: ZP
|
||||||
|
flags: MOVING
|
||||||
|
movement: Z
|
||||||
|
}
|
||||||
|
|||||||
@@ -647,6 +647,15 @@ namespace actor
|
|||||||
if (act->pos.z>=max.z)
|
if (act->pos.z>=max.z)
|
||||||
{
|
{
|
||||||
if (act->flags & FLAG_MOVING) changeMoving(act);
|
if (act->flags & FLAG_MOVING) changeMoving(act);
|
||||||
|
|
||||||
|
if ( ((act->flags&FLAG_HERO)!=0) && (room::getExit(ZP)!=-1) )
|
||||||
|
{
|
||||||
|
room::load(room::getExit(ZP));
|
||||||
|
act->pos.z = 4;
|
||||||
|
actor::setDirty(act);
|
||||||
|
room_changed = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -659,6 +668,14 @@ namespace actor
|
|||||||
do {
|
do {
|
||||||
actor::actor_t *other = actor::any_above_me(now);
|
actor::actor_t *other = actor::any_above_me(now);
|
||||||
if (!other || (other->flags & FLAG_PUSHABLE)) now->pos.z++;
|
if (!other || (other->flags & FLAG_PUSHABLE)) now->pos.z++;
|
||||||
|
if ( (now->pos.z>=max.z) && (now->flags&FLAG_HERO)!=0 && (room::getExit(ZP)!=-1) )
|
||||||
|
{
|
||||||
|
room::load(room::getExit(ZP));
|
||||||
|
now->pos.z = 4;
|
||||||
|
actor::setDirty(now);
|
||||||
|
room_changed = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
now = other;
|
now = other;
|
||||||
if (now && !(now->flags & FLAG_PUSHABLE)) {
|
if (now && !(now->flags & FLAG_PUSHABLE)) {
|
||||||
if (act->flags & FLAG_MOVING) changeMoving(act);
|
if (act->flags & FLAG_MOVING) changeMoving(act);
|
||||||
@@ -782,9 +799,11 @@ namespace actor
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (act->push & PUSH_ZN) {
|
if (act->push & PUSH_ZN) {
|
||||||
// Si estic sobre el piso, no faig res [TODO]: Si no hi ha piso ha de caure
|
// Si estic sobre el piso, no faig res
|
||||||
if (act->pos.z == 0)
|
if (act->pos.z == 0)
|
||||||
{
|
{
|
||||||
|
if ( (act->flags & FLAG_MOVING) && (act->movement==MOV_Z) ) changeMoving(act);
|
||||||
|
act->push &= ~PUSH_ZN;
|
||||||
if ( ((act->flags&FLAG_HERO)==0) || (room::getExit(ZN)==-1) ) return;
|
if ( ((act->flags&FLAG_HERO)==0) || (room::getExit(ZN)==-1) ) return;
|
||||||
|
|
||||||
room::load(room::getExit(ZN));
|
room::load(room::getExit(ZN));
|
||||||
|
|||||||
Reference in New Issue
Block a user