- [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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -47,7 +47,7 @@ actor{
bmp: altres.gif bmp: altres.gif
bmp-rect: 0 75 20 33 bmp-rect: 0 75 20 33
bmp-offset: 0 39 bmp-offset: 0 39
pos: 0 30 6 pos: -1 30 6
size: 1 1 9 size: 1 1 9
movement: CW movement: CW
} }
@@ -57,7 +57,7 @@ actor{
bmp: altres.gif bmp: altres.gif
bmp-rect: 0 75 20 33 bmp-rect: 0 75 20 33
bmp-offset: 0 39 bmp-offset: 0 39
pos: 0 23 6 pos: -1 23 6
size: 1 1 9 size: 1 1 9
movement: CW movement: CW
} }

View File

@@ -7,6 +7,7 @@ floor-texture: 0
wall-texture: 0 wall-texture: 0
door-texture: 0 door-texture: 0
under-door-texture: 0 under-door-texture: 0
exit-xn: 27
exit-yn: 9 exit-yn: 9
actor{ actor{

View File

@@ -16,6 +16,18 @@ actor{
bmp: caixes.gif bmp: caixes.gif
bmp-rect: 0 0 32 32 bmp-rect: 0 0 32 32
bmp-offset: 0 32 bmp-offset: 0 32
pos: 40 48 0
size: 8 8 8
orient: YP
flags: PUSHABLE ORIENTABLE
movement: CW
}
actor{
name: BOX-A-00
bmp: caixes.gif
bmp-rect: 0 0 32 32
bmp-offset: 0 32
pos: 8 24 0 pos: 8 24 0
size: 8 8 8 size: 8 8 8
flags: PUSHABLE flags: PUSHABLE
@@ -23,7 +35,52 @@ actor{
} }
actor{ actor{
name: BOX-C name: BOX-A-01
bmp: caixes.gif
bmp-rect: 0 0 32 32
bmp-offset: 0 32
pos: 48 8 0
size: 8 8 8
movement: CW
}
actor{
name: BOX-A-02
bmp: caixes.gif
bmp-rect: 0 0 32 32
bmp-offset: 0 32
pos: 10 8 0
size: 8 8 8
orient: YP
flags: PUSHABLE ORIENTABLE
movement: CW
}
actor{
name: BOX-B-00
bmp: caixes.gif
bmp-rect: 32 0 32 32
bmp-offset: 0 32
pos: 40 10 0
size: 8 8 8
flags: PUSHABLE
movement: CW
}
actor{
name: BOX-B-01
bmp: caixes.gif
bmp-rect: 32 0 32 32
bmp-offset: 0 32
pos: 42 48 8
size: 8 8 8
orient: YP
flags: PUSHABLE ORIENTABLE
movement: CW
}
actor{
name: BOX-C-00
bmp: caixes.gif bmp: caixes.gif
bmp-rect: 64 0 32 32 bmp-rect: 64 0 32 32
bmp-offset: 0 32 bmp-offset: 0 32
@@ -33,6 +90,18 @@ actor{
movement: CW movement: CW
} }
actor{
name: BOX-C-01
bmp: caixes.gif
bmp-rect: 64 0 32 32
bmp-offset: 0 32
pos: 44 8 8
size: 8 8 8
orient: YP
flags: PUSHABLE ORIENTABLE
movement: CW
}
actor{ actor{
name: LIFT name: LIFT
bmp: altres.gif bmp: altres.gif

View File

@@ -196,6 +196,20 @@ actor{
movement: CW movement: CW
} }
actor{
name: OBRER
bmp: obrer.gif
bmp-rect: 0 0 24 32
bmp-offset: -4 37
pos: 56 16 0
size: 8 8 8
orient: XN
anim-wait: 1
flags: REACTIVE MOVING ANIMATED ORIENTABLE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: X
}
actor{ actor{
name: REIXA-Y name: REIXA-Y
bmp: altres.gif bmp: altres.gif

220
data/rooms/27.txt Normal file
View File

@@ -0,0 +1,220 @@
width: 2
height: 3
door-height-xp: 0
door-height-xn: 0
color: YELLOW
floor-texture: 10
wall-texture: 9
door-texture: 3
under-door-texture: 9
exit-xp: 17
exit-xn: 28
actor{
name: BOX-B
bmp: caixes.gif
bmp-rect: 32 0 32 32
bmp-offset: 0 32
pos: 48 8 0
size: 8 8 8
flags: PUSHABLE
movement: CW
}
actor{
name: CADIRA
bmp: caixes.gif
bmp-rect: 64 96 20 32
bmp-offset: -7 38
pos: 16 32 0
size: 6 5 8
orient: YP
movement: CW
}
actor{
name: CUADRO-00
bmp: altres.gif
bmp-rect: 66 75 18 32
bmp-offset: 0 39
pos: 7 8 6
size: 1 1 9
orient: YP
movement: CW
}
actor{
name: CUADRO-01
bmp: altres.gif
bmp-rect: 102 75 18 32
bmp-offset: 0 39
pos: 7 48 6
size: 1 1 9
orient: YP
movement: CW
}
actor{
name: KALLAX-00
bmp: altres.gif
bmp-rect: 0 48 24 27
bmp-offset: -8 31
pos: 16 0 0
size: 8 4 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: KALLAX-01
bmp: altres.gif
bmp-rect: 48 48 24 27
bmp-offset: -8 31
pos: 16 0 8
size: 8 4 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: KALLAX-02
bmp: altres.gif
bmp-rect: 24 48 24 27
bmp-offset: -8 31
pos: 8 0 0
size: 8 4 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: KALLAX-02
bmp: altres.gif
bmp-rect: 48 48 24 27
bmp-offset: -8 31
pos: 40 0 0
size: 8 4 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: KALLAX-03
bmp: altres.gif
bmp-rect: 24 48 24 27
bmp-offset: -8 31
pos: 48 0 0
size: 8 4 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: KALLAX-04
bmp: altres.gif
bmp-rect: 96 48 24 27
bmp-offset: -8 31
pos: 40 0 8
size: 8 4 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: KALLAX-05
bmp: altres.gif
bmp-rect: 72 48 24 27
bmp-offset: -8 31
pos: 48 0 8
size: 8 4 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: KALLAX-06
bmp: altres.gif
bmp-rect: 96 48 24 27
bmp-offset: -8 31
pos: 8 0 8
size: 8 4 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: MESITA
bmp: caixes.gif
bmp-rect: 0 64 32 32
bmp-offset: 0 32
pos: 24 0 0
size: 8 8 4
movement: CW
}
actor{
name: NES
bmp: caixes.gif
bmp-rect: 96 0 32 32
bmp-offset: -2 33
pos: 32 0 0
size: 8 7 6
flags: PUSHABLE
movement: CW
}
actor{
name: ROOMBA
bmp: caixes.gif
bmp-rect: 160 0 32 32
bmp-offset: 0 34
pos: 8 56 0
size: 8 8 2
orient: XN
flags: REACTIVE MOVING DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: TAULA-A
bmp: caixes.gif
bmp-rect: 128 32 32 32
bmp-offset: 0 32
pos: 24 24 0
size: 8 8 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: TAULA-B
bmp: caixes.gif
bmp-rect: 160 32 32 32
bmp-offset: 0 32
pos: 24 32 0
size: 8 8 8
orient: YP
flags: ORIENTABLE
movement: CW
}
actor{
name: TV
bmp: caixes.gif
bmp-rect: 32 64 32 32
bmp-offset: -4 34
pos: 24 0 4
size: 8 6 8
flags: PUSHABLE
movement: CW
}

281
data/rooms/28.txt Normal file
View File

@@ -0,0 +1,281 @@
width: 3
height: 3
door-height-xp: 0
door-height-yp: 0
door-height-yn: 0
color: GREEN
floor-texture: 10
wall-texture: 3
door-texture: 1
under-door-texture: 3
exit-xp: 27
exit-yp: 35
exit-yn: 29
actor{
name: BLOCMATA-00
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 48 48 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-01
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 48 40 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-02
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 40 48 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-03
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 48 16 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-04
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 48 8 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-05
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 40 8 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-06
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 16 8 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-07
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 8 8 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-08
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 8 16 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-09
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 8 40 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-10
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 8 48 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-11
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 16 48 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-12
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 24 24 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-13
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 32 24 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-14
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 32 32 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BLOCMATA-15
bmp: altres.gif
bmp-rect: 0 133 32 27
bmp-offset: 0 27
pos: 24 32 0
size: 8 8 6
flags: REACTIVE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: CW
}
actor{
name: BUBBLE-00
bmp: altres.gif
bmp-rect: 20 75 28 26
bmp-offset: -2 28
pos: 8 8 6
size: 8 8 8
orient: ZP
flags: PUSHABLE MOVING INERTIA
movement: Z
}
actor{
name: BUBBLE-01
bmp: altres.gif
bmp-rect: 20 75 28 26
bmp-offset: -2 28
pos: 8 48 31
size: 8 8 8
orient: ZP
flags: PUSHABLE MOVING INERTIA
movement: Z
}
actor{
name: BUBBLE-02
bmp: altres.gif
bmp-rect: 20 75 28 26
bmp-offset: -2 28
pos: 48 48 23
size: 8 8 8
orient: ZP
flags: PUSHABLE MOVING INERTIA
movement: Z
}
actor{
name: BUBBLE-03
bmp: altres.gif
bmp-rect: 20 75 28 26
bmp-offset: -2 28
pos: 48 8 15
size: 8 8 8
orient: ZP
flags: PUSHABLE MOVING INERTIA
movement: Z
}
actor{
name: GAT-BATMAN
bmp: gat.gif
bmp-rect: 0 0 24 28
bmp-offset: -4 32
pos: 0 24 0
size: 8 8 8
orient: YP
anim-wait: 1
flags: REACTIVE MOVING ANIMATED ORIENTABLE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: RAND
}
actor{
name: GAT-ROBIN
bmp: gat2.gif
bmp-rect: 0 0 24 28
bmp-offset: -4 32
pos: 32 16 0
size: 8 8 8
orient: XP
anim-wait: 1
flags: REACTIVE MOVING ANIMATED ORIENTABLE DEADLY
react-mask: XP XN YP YN ZP ZN
movement: RAND
}

13
data/rooms/29.txt Normal file
View File

@@ -0,0 +1,13 @@
width: 0
height: 3
door-height-xn: 0
door-height-yp: 0
door-height-yn: 0
color: WHITE
floor-texture: 4
wall-texture: 2
door-texture: 0
under-door-texture: 0
exit-xn: 31
exit-yp: 28
exit-yn: 30

257
data/rooms/30.txt Normal file
View File

@@ -0,0 +1,257 @@
width: 3
height: 3
door-height-yp: 1
color: CYAN
floor-texture: 11
wall-texture: 0
door-texture: 0
under-door-texture: 0
exit-yp: 29
actor{
name: PLATF-02
bmp: caixes.gif
bmp-rect: 96 160 32 32
bmp-offset: 0 32
pos: 0 8 16
size: 8 8 8
orient: ZP
movement: Z
}
actor{
name: PLATF-04
bmp: caixes.gif
bmp-rect: 96 160 32 32
bmp-offset: 0 32
pos: 0 8 0
size: 8 8 8
orient: ZP
movement: Z
}
actor{
name: PLATH
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 0 56 16
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: PLATH-00
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 0 16 0
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: PLATH-00
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 32 56 0
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: PLATH-01
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 24 56 0
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: PLATH-02
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 0 24 0
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: PLATH-03
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 0 32 0
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: PLATH-04
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 0 40 0
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: PLATH-05
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 0 48 0
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: PLATH-06
bmp: caixes.gif
bmp-rect: 160 128 32 32
bmp-offset: 0 32
pos: 0 56 0
size: 8 8 4
orient: ZP
movement: Z
}
actor{
name: ROOMBA
bmp: caixes.gif
bmp-rect: 160 0 32 32
bmp-offset: 0 34
pos: 0 56 4
size: 8 8 2
orient: YN
flags: REACTIVE MOVING DEADLY
react-mask: XP XN YP YN ZP ZN
movement: Y
}
actor{
name: S-BAG
bmp: objectes.gif
bmp-rect: 145 41 20 25
bmp-offset: -5 27
pos: 0 56 20
size: 4 4 4
anim-cycle: SEQ
anim-wait: 2
flags: SPECIAL
movement: CW
}
actor{
name: TRANSPA-00
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 48 48 0
size: 8 8 6
movement: CW
}
actor{
name: TRANSPA-01
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 48 26 6
size: 8 8 6
movement: CW
}
actor{
name: TRANSPA-02
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 48 26 0
size: 8 8 6
movement: CW
}
actor{
name: TRANSPA-03
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 48 4 0
size: 8 8 6
movement: CW
}
actor{
name: TRANSPA-04
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 48 4 6
size: 8 8 6
movement: CW
}
actor{
name: TRANSPA-05
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 48 4 12
size: 8 8 6
movement: CW
}
actor{
name: TRANSPA-06
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 24 4 0
size: 8 8 6
movement: CW
}
actor{
name: TRANSPA-06
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 24 4 16
size: 8 8 6
movement: CW
}
actor{
name: TRANSPA-07
bmp: altres.gif
bmp-rect: 0 160 32 32
bmp-offset: 0 32
pos: 24 4 8
size: 8 8 6
movement: CW
}
actor{
name: TV
bmp: caixes.gif
bmp-rect: 32 64 32 32
bmp-offset: -4 34
pos: 0 13 24
size: 8 6 8
flags: PUSHABLE GRAVITY
movement: CW
}

11
data/rooms/31.txt Normal file
View File

@@ -0,0 +1,11 @@
width: 2
height: 2
door-height-xp: 0
door-height-yp: 0
color: PURPLE
floor-texture: 0
wall-texture: 0
door-texture: 0
under-door-texture: 0
exit-xp: 29
exit-yp: 32

11
data/rooms/32.txt Normal file
View File

@@ -0,0 +1,11 @@
width: 2
height: 2
door-height-yp: 0
door-height-yn: 0
color: CYAN
floor-texture: 0
wall-texture: 0
door-texture: 0
under-door-texture: 0
exit-yp: 33
exit-yn: 31

13
data/rooms/33.txt Normal file
View File

@@ -0,0 +1,13 @@
width: 2
height: 2
door-height-xp: 0
door-height-yp: 0
door-height-yn: 0
color: WHITE
floor-texture: 0
wall-texture: 0
door-texture: 0
under-door-texture: 0
exit-xp: 35
exit-yp: 34
exit-yn: 32

9
data/rooms/34.txt Normal file
View File

@@ -0,0 +1,9 @@
width: 2
height: 2
door-height-yn: 0
color: CYAN
floor-texture: 0
wall-texture: 0
door-texture: 0
under-door-texture: 0
exit-yn: 33

11
data/rooms/35.txt Normal file
View File

@@ -0,0 +1,11 @@
width: 2
height: 2
door-height-xn: 0
door-height-yn: 0
color: YELLOW
floor-texture: 0
wall-texture: 0
door-texture: 0
under-door-texture: 0
exit-xn: 33
exit-yn: 28

View File

@@ -467,7 +467,7 @@ category{
bmp: obrer.gif bmp: obrer.gif
bmp-rect: 0 0 24 32 bmp-rect: 0 0 24 32
bmp-offset: -4 37 bmp-offset: -4 37
pos: 48 0 4 pos: 56 16 0
size: 8 8 8 size: 8 8 8
orient: YP orient: YP
anim-wait: 1 anim-wait: 1

View File

@@ -8,6 +8,7 @@
#include "debug.h" #include "debug.h"
#include "config.h" #include "config.h"
#include <vector> #include <vector>
#include "m_game.h"
namespace actor namespace actor
{ {
@@ -756,6 +757,7 @@ namespace actor
} }
break; break;
case MOV_RAND: case MOV_RAND:
act->react_push = (rand()%32)+8; // [RZC 26/09/2024] Hack usant react_push en el moviment RAND per a contar la distancia abans de canviar de direcció
switch (rand()%4) switch (rand()%4)
{ {
case 0: act->mov_push=PUSH_YP; break; case 0: act->mov_push=PUSH_YP; break;
@@ -817,6 +819,14 @@ namespace actor
return; return;
} }
// [RZC 26/09/2024] Hack usant react_push en el moviment RAND per a contar la distancia abans de canviar de direcció
if (act->movement==MOV_RAND)
{
act->react_push--;
if (act->react_push==0) changeMoving(act);
}
// [RZC 26/09/2024] Hack usant react_push en les bambolles de café per al dz del moviment de anar pegant botets // [RZC 26/09/2024] Hack usant react_push en les bambolles de café per al dz del moviment de anar pegant botets
if (act->movement==MOV_RANDJ) if (act->movement==MOV_RANDJ)
{ {
@@ -1170,7 +1180,7 @@ namespace actor
draw::pushSource(); draw::pushSource();
draw::setSource(act->surface); draw::setSource(act->surface);
if (editor::isEditing() && (act==selected)) draw::swapcol(1, room::getColor(1)); // Si està seleccionat, que canvie de color if (editor::isEditing() && (act==selected) && modules::game::getSection()==modules::game::SECTION_ACTOR) draw::swapcol(1, room::getColor(1)); // Si està seleccionat, que canvie de color
draw::stencil::set(act->tag); draw::stencil::set(act->tag);
draw::draw(x, y, act->bmp_rect.w, act->bmp_rect.h, act->bmp_rect.x+ao, act->bmp_rect.y+oo, flip); draw::draw(x, y, act->bmp_rect.w, act->bmp_rect.h, act->bmp_rect.x+ao, act->bmp_rect.y+oo, flip);
draw::swapcol(1, room::getColor(0)); // Tornem al color per defecte draw::swapcol(1, room::getColor(0)); // Tornem al color per defecte

View File

@@ -7,6 +7,7 @@
#include <vector> #include <vector>
#include "room.h" #include "room.h"
#include "jutil.h" #include "jutil.h"
#include "m_game.h"
#define EDITING_NORMAL 0 #define EDITING_NORMAL 0
#define EDITING_CATEGORY_NAME 1 #define EDITING_CATEGORY_NAME 1
@@ -146,7 +147,7 @@ namespace modules
actor::select(new_act); actor::select(new_act);
actor::setFloatingEditing(true); actor::setFloatingEditing(true);
room::editor::modify(); room::editor::modify();
modules::game::setSection(modules::game::SECTION_ACTOR);
return false; return false;
} }
} else { } else {

View File

@@ -12,8 +12,6 @@ namespace modules
{ {
namespace game namespace game
{ {
enum sections { SECTION_GENERAL, SECTION_ROOM, SECTION_ACTOR };
std::vector<std::string> gifs; std::vector<std::string> gifs;
int treeview_scroll = 0; int treeview_scroll = 0;
@@ -275,6 +273,16 @@ namespace modules
} }
} }
void setSection(int value)
{
section = value;
}
const int getSection()
{
return section;
}
int loop() int loop()
{ {
int return_value = GAME_NONE; int return_value = GAME_NONE;
@@ -362,6 +370,10 @@ namespace modules
actor::select(actor::findByTag(val)); actor::select(actor::findByTag(val));
section = SECTION_ACTOR; section = SECTION_ACTOR;
} }
else if (input::mouseX()>=0 && input::mouseX()<320 && input::mouseY()>=0 && input::mouseY()<240)
{
section = SECTION_ROOM;
}
} }
// Si estem jugant, o estem en el editor pero NO en mode edició, pinta els marcadors // Si estem jugant, o estem en el editor pero NO en mode edició, pinta els marcadors

View File

@@ -16,9 +16,14 @@ namespace modules
#define GAME_EDITOR_BITMAP_POS 6 #define GAME_EDITOR_BITMAP_POS 6
#define GAME_EDITOR_BITMAP_SIZE 7 #define GAME_EDITOR_BITMAP_SIZE 7
enum sections { SECTION_GENERAL, SECTION_ROOM, SECTION_ACTOR };
void init(); void init();
int loop(); int loop();
void setSection(int value);
const int getSection();
std::vector<std::string> getGifs(); std::vector<std::string> getGifs();
} }
} }

View File

@@ -88,30 +88,36 @@ namespace room
if (doors & DOOR_YP) if (doors & DOOR_YP)
{ {
uint8_t actual_floor = door_height[2]>0?0:floor_type*32; const int floor_row_tiles = int(floor_surf->w/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 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; 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", {floor_x,floor_y+1,32,15}, {0,15+door_height[2]*8});
act->flags = FLAG_NOEDITOR; act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true); 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; act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true); actor::setDirty(act, true);
} }
if (doors & DOOR_XP) if (doors & DOOR_XP)
{ {
uint8_t actual_floor = door_height[0]>0?0:floor_type*32; const int floor_row_tiles = int(floor_surf->w/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 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; 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", {floor_x,floor_y+1,32,15}, {0,15+door_height[0]*8});
act->flags = FLAG_NOEDITOR; act->flags = FLAG_NOEDITOR;
actor::setDirty(act, true); 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->flags = FLAG_NOEDITOR | FLAG_ORIENTABLE;
act->orient = PUSH_YP; act->orient = PUSH_YP;
actor::setDirty(act, true); actor::setDirty(act, true);