- [FIX] Al moure en mode floating no guardava
- [NEW] Cicle d'animació [0 1 0 1] - [CHG] Forma diferent de pillat el tipo de booster i el ID per a que no torne a apareixer - [NEW] Nou moviment: RANDJ - Nous gràfics, enemics, objectes - Més habitacions
This commit is contained in:
BIN
data/altres.gif
BIN
data/altres.gif
Binary file not shown.
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 4.1 KiB |
@@ -51,7 +51,7 @@ actor{
|
|||||||
}
|
}
|
||||||
|
|
||||||
actor{
|
actor{
|
||||||
name: B-LIVE
|
name: B-00-LIVE
|
||||||
bmp: objectes.gif
|
bmp: objectes.gif
|
||||||
bmp-rect: 114 78 15 18
|
bmp-rect: 114 78 15 18
|
||||||
bmp-offset: -8 22
|
bmp-offset: -8 22
|
||||||
|
|||||||
@@ -41,6 +41,16 @@ actor{
|
|||||||
movement: CW
|
movement: CW
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: ESTANT
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 21 101 26 24
|
||||||
|
bmp-offset: -6 27
|
||||||
|
pos: 16 16 12
|
||||||
|
size: 8 5 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
actor{
|
actor{
|
||||||
name: P-PIPE
|
name: P-PIPE
|
||||||
bmp: objectes.gif
|
bmp: objectes.gif
|
||||||
@@ -194,16 +204,6 @@ actor{
|
|||||||
movement: CW
|
movement: CW
|
||||||
}
|
}
|
||||||
|
|
||||||
actor{
|
|
||||||
name: TRANSPA-16
|
|
||||||
bmp: altres.gif
|
|
||||||
bmp-rect: 21 101 26 24
|
|
||||||
bmp-offset: -6 27
|
|
||||||
pos: 16 16 12
|
|
||||||
size: 8 5 6
|
|
||||||
movement: CW
|
|
||||||
}
|
|
||||||
|
|
||||||
actor{
|
actor{
|
||||||
name: TRANSPA-17
|
name: TRANSPA-17
|
||||||
bmp: altres.gif
|
bmp: altres.gif
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ door-height-xn: 1
|
|||||||
door-height-yp: 1
|
door-height-yp: 1
|
||||||
color: WHITE
|
color: WHITE
|
||||||
floor-texture: 0
|
floor-texture: 0
|
||||||
wall-texture: 0
|
wall-texture: 3
|
||||||
door-texture: 0
|
door-texture: 1
|
||||||
under-door-texture: 0
|
under-door-texture: 0
|
||||||
exit-xp: 18
|
exit-xp: 18
|
||||||
exit-xn: 22
|
exit-xn: 22
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ actor{
|
|||||||
}
|
}
|
||||||
|
|
||||||
actor{
|
actor{
|
||||||
name: B-JUMP
|
name: B-01-JUMP
|
||||||
bmp: objectes.gif
|
bmp: objectes.gif
|
||||||
bmp-rect: 114 78 15 18
|
bmp-rect: 114 78 15 18
|
||||||
bmp-offset: -8 22
|
bmp-offset: -8 22
|
||||||
|
|||||||
@@ -1,13 +1,95 @@
|
|||||||
width: 2
|
width: 1
|
||||||
height: 2
|
height: 2
|
||||||
door-height-xp: 0
|
door-height-xp: 0
|
||||||
door-height-yp: 0
|
door-height-yp: 3
|
||||||
door-height-yn: 4
|
door-height-yn: 4
|
||||||
color: YELLOW
|
color: YELLOW
|
||||||
floor-texture: 0
|
floor-texture: 1
|
||||||
wall-texture: 0
|
wall-texture: 13
|
||||||
door-texture: 0
|
door-texture: 7
|
||||||
under-door-texture: 0
|
under-door-texture: 0
|
||||||
exit-xp: 25
|
exit-xp: 25
|
||||||
exit-yp: 26
|
exit-yp: 26
|
||||||
exit-yn: 21
|
exit-yn: 21
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: COFFEE-00
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 32 133 21 21
|
||||||
|
bmp-offset: 0 34
|
||||||
|
pos: 16 8 0
|
||||||
|
size: 8 8 2
|
||||||
|
orient: XP
|
||||||
|
anim-cycle: DUO
|
||||||
|
anim-wait: 3
|
||||||
|
flags: REACTIVE MOVING ANIMATED DEADLY
|
||||||
|
react-mask: XP XN YP YN ZP ZN
|
||||||
|
movement: RANDJ
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: COFFEE-01
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 32 133 21 21
|
||||||
|
bmp-offset: 0 34
|
||||||
|
pos: 40 48 0
|
||||||
|
size: 8 8 2
|
||||||
|
orient: XN
|
||||||
|
anim-cycle: DUO
|
||||||
|
anim-wait: 3
|
||||||
|
flags: REACTIVE MOVING ANIMATED DEADLY
|
||||||
|
react-mask: XP XN YP YN ZP ZN
|
||||||
|
movement: RANDJ
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: PLATH-00
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 160 128 32 32
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 32 48 8
|
||||||
|
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 48 8
|
||||||
|
size: 8 8 4
|
||||||
|
orient: ZP
|
||||||
|
movement: Z
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: TRANSPA-00
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 0 160 32 32
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 24 8 10
|
||||||
|
size: 8 8 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: TRANSPA-01
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 0 160 32 32
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 16 24 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: 32 32 2
|
||||||
|
size: 8 8 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,53 +2,158 @@ width: 2
|
|||||||
height: 2
|
height: 2
|
||||||
door-height-xn: 4
|
door-height-xn: 4
|
||||||
color: PURPLE
|
color: PURPLE
|
||||||
floor-texture: 0
|
floor-texture: 1
|
||||||
wall-texture: 0
|
wall-texture: 13
|
||||||
door-texture: 0
|
door-texture: 7
|
||||||
under-door-texture: 0
|
under-door-texture: 13
|
||||||
exit-xn: 24
|
exit-xn: 24
|
||||||
exit-zp: 21
|
exit-zp: 21
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: ANBERNIC
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 157 80 24 14
|
||||||
|
bmp-offset: -4 16
|
||||||
|
pos: 24 40 8
|
||||||
|
size: 6 4 2
|
||||||
|
flags: PUSHABLE GRAVITY
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: BARREL
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 96 64 18 32
|
||||||
|
bmp-offset: -7 37
|
||||||
|
pos: 40 16 0
|
||||||
|
size: 6 6 12
|
||||||
|
anim-cycle: SEQ
|
||||||
|
anim-wait: 1
|
||||||
|
flags: ANIMATED GRAVITY
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
actor{
|
actor{
|
||||||
name: BOX-B-00
|
name: BOX-B-00
|
||||||
bmp: caixes.gif
|
bmp: caixes.gif
|
||||||
bmp-rect: 32 0 32 32
|
bmp-rect: 32 0 32 32
|
||||||
bmp-offset: 0 32
|
bmp-offset: 0 32
|
||||||
|
pos: 32 40 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 48 0
|
pos: 16 48 0
|
||||||
size: 8 8 8
|
size: 6 5 8
|
||||||
|
orient: YP
|
||||||
flags: PUSHABLE
|
flags: PUSHABLE
|
||||||
movement: CW
|
movement: CW
|
||||||
}
|
}
|
||||||
|
|
||||||
actor{
|
actor{
|
||||||
name: BOX-B-01
|
name: CUADRO
|
||||||
bmp: caixes.gif
|
|
||||||
bmp-rect: 32 0 32 32
|
|
||||||
bmp-offset: 0 32
|
|
||||||
pos: 32 8 0
|
|
||||||
size: 8 8 8
|
|
||||||
flags: PUSHABLE
|
|
||||||
movement: CW
|
|
||||||
}
|
|
||||||
|
|
||||||
actor{
|
|
||||||
name: PILOTA
|
|
||||||
bmp: altres.gif
|
bmp: altres.gif
|
||||||
bmp-rect: 0 108 21 21
|
bmp-rect: 48 75 18 32
|
||||||
bmp-offset: -6 26
|
bmp-offset: 0 39
|
||||||
pos: 32 24 0
|
pos: 40 0 0
|
||||||
size: 8 8 8
|
size: 1 1 9
|
||||||
flags: PUSHABLE INERTIA
|
orient: YP
|
||||||
|
flags: ORIENTABLE
|
||||||
movement: CW
|
movement: CW
|
||||||
}
|
}
|
||||||
|
|
||||||
actor{
|
actor{
|
||||||
name: PLATF
|
name: ESTANT-00
|
||||||
bmp: caixes.gif
|
bmp: altres.gif
|
||||||
bmp-rect: 96 160 32 32
|
bmp-rect: 21 101 26 24
|
||||||
bmp-offset: 0 32
|
bmp-offset: -6 27
|
||||||
pos: 40 24 0
|
pos: 8 8 0
|
||||||
size: 8 8 8
|
size: 8 5 6
|
||||||
orient: ZP
|
movement: CW
|
||||||
movement: Z
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: ESTANT-01
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 21 101 26 24
|
||||||
|
bmp-offset: -6 27
|
||||||
|
pos: 8 8 6
|
||||||
|
size: 8 5 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: ESTANT-02
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 21 101 26 24
|
||||||
|
bmp-offset: -6 27
|
||||||
|
pos: 8 8 12
|
||||||
|
size: 8 5 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: ESTANT-03
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 21 101 26 24
|
||||||
|
bmp-offset: -6 27
|
||||||
|
pos: 16 8 0
|
||||||
|
size: 8 5 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: ESTANT-04
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 21 101 26 24
|
||||||
|
bmp-offset: -6 27
|
||||||
|
pos: 16 8 6
|
||||||
|
size: 8 5 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: ESTANT-05
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 21 101 26 24
|
||||||
|
bmp-offset: -6 27
|
||||||
|
pos: 16 8 12
|
||||||
|
size: 8 5 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: TAULA-A
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 128 32 32 32
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 16 40 0
|
||||||
|
size: 8 8 8
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: TAULA-B
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 160 32 32 32
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 24 40 0
|
||||||
|
size: 8 8 8
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: YONKI
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 168 65 19 31
|
||||||
|
bmp-offset: -6 37
|
||||||
|
pos: 32 16 0
|
||||||
|
size: 8 8 8
|
||||||
|
movement: CW
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,85 @@
|
|||||||
width: 2
|
width: 3
|
||||||
height: 2
|
height: 2
|
||||||
door-height-yn: 0
|
door-height-yn: 0
|
||||||
color: CYAN
|
color: CYAN
|
||||||
floor-texture: 0
|
floor-texture: 10
|
||||||
wall-texture: 0
|
wall-texture: 1
|
||||||
door-texture: 0
|
door-texture: 0
|
||||||
under-door-texture: 0
|
under-door-texture: 0
|
||||||
exit-yn: 24
|
exit-yn: 24
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: CADIRA
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 64 96 20 32
|
||||||
|
bmp-offset: -7 38
|
||||||
|
pos: 0 16 0
|
||||||
|
size: 6 5 8
|
||||||
|
orient: YP
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: MESITA
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 0 64 32 32
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 0 24 0
|
||||||
|
size: 8 8 4
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: NES
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 96 0 32 32
|
||||||
|
bmp-offset: -2 33
|
||||||
|
pos: 0 32 0
|
||||||
|
size: 8 7 6
|
||||||
|
orient: YP
|
||||||
|
flags: PUSHABLE ORIENTABLE
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: SOFA
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 0 0 48 40
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 40 8 0
|
||||||
|
size: 16 8 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: TAULA-A
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 128 32 32 32
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 0 8 0
|
||||||
|
size: 8 8 8
|
||||||
|
orient: YP
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: TAULA-B
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 160 32 32 32
|
||||||
|
bmp-offset: 0 32
|
||||||
|
pos: 8 8 0
|
||||||
|
size: 8 8 8
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: TV
|
||||||
|
bmp: caixes.gif
|
||||||
|
bmp-rect: 32 64 32 32
|
||||||
|
bmp-offset: 2 35
|
||||||
|
pos: 0 24 4
|
||||||
|
size: 8 6 8
|
||||||
|
orient: YP
|
||||||
|
flags: ORIENTABLE
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|||||||
@@ -283,6 +283,16 @@ category{
|
|||||||
movement: CW
|
movement: CW
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: ESTANT
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 21 101 26 24
|
||||||
|
bmp-offset: -6 27
|
||||||
|
pos: 8 8 0
|
||||||
|
size: 8 5 6
|
||||||
|
movement: CW
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
category{
|
category{
|
||||||
@@ -478,6 +488,21 @@ category{
|
|||||||
movement: Z
|
movement: Z
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actor{
|
||||||
|
name: COFFEE
|
||||||
|
bmp: altres.gif
|
||||||
|
bmp-rect: 32 133 21 21
|
||||||
|
bmp-offset: 0 34
|
||||||
|
pos: 32 16 0
|
||||||
|
size: 8 8 2
|
||||||
|
orient: XP
|
||||||
|
anim-cycle: DUO
|
||||||
|
anim-wait: 3
|
||||||
|
flags: REACTIVE MOVING ANIMATED DEADLY
|
||||||
|
react-mask: XP XN YP YN ZP ZN
|
||||||
|
movement: RANDJ
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
category{
|
category{
|
||||||
|
|||||||
@@ -11,10 +11,11 @@
|
|||||||
|
|
||||||
namespace actor
|
namespace actor
|
||||||
{
|
{
|
||||||
uint8_t anims[3][4] = {
|
uint8_t anims[4][4] = {
|
||||||
{0, 1, 0, 2},
|
{0, 1, 0, 2},
|
||||||
{0, 1, 2, 3},
|
{0, 1, 2, 3},
|
||||||
{0, 1, 2, 0}
|
{0, 1, 2, 0},
|
||||||
|
{0, 1, 0, 1}
|
||||||
};
|
};
|
||||||
|
|
||||||
actor_t *first = nullptr;
|
actor_t *first = nullptr;
|
||||||
@@ -135,9 +136,9 @@ namespace actor
|
|||||||
} else if (util::strcomp(key, "orient:")) {
|
} else if (util::strcomp(key, "orient:")) {
|
||||||
t->orient = util::stringToInt(file::readString(buffer), {"none", "xp", "xn", "yp", "yn", "zp", "zn"}, {0, 1, 2, 4, 8, 16, 32});
|
t->orient = util::stringToInt(file::readString(buffer), {"none", "xp", "xn", "yp", "yn", "zp", "zn"}, {0, 1, 2, 4, 8, 16, 32});
|
||||||
} else if (util::strcomp(key, "movement:")) {
|
} else if (util::strcomp(key, "movement:")) {
|
||||||
t->movement = util::stringToInt(file::readString(buffer), {"none", "x", "y", "z", "cw", "ccw", "rand", "randv", "hunt"},{MOV_NONE, MOV_X, MOV_Y, MOV_Z, MOV_CW, MOV_CCW, MOV_RAND, MOV_RANDV, MOV_HUNT});
|
t->movement = util::stringToInt(file::readString(buffer), {"none", "x", "y", "z", "cw", "ccw", "rand", "randv", "hunt", "randj"},{MOV_NONE, MOV_X, MOV_Y, MOV_Z, MOV_CW, MOV_CCW, MOV_RAND, MOV_RANDV, MOV_HUNT, MOV_RANDJ});
|
||||||
} else if (util::strcomp(key, "anim-cycle:")) {
|
} else if (util::strcomp(key, "anim-cycle:")) {
|
||||||
t->anim_cycle = util::stringToInt(file::readString(buffer), {"walk", "seq", "min"},{0, 1, 2});
|
t->anim_cycle = util::stringToInt(file::readString(buffer), {"walk", "seq", "min", "duo"},{0, 1, 2, 3});
|
||||||
} else if (util::strcomp(key, "anim-wait:")) {
|
} else if (util::strcomp(key, "anim-wait:")) {
|
||||||
t->anim_wait = file::readInt(buffer);
|
t->anim_wait = file::readInt(buffer);
|
||||||
} else if (util::strcomp(key, "flags:")) {
|
} else if (util::strcomp(key, "flags:")) {
|
||||||
@@ -283,6 +284,7 @@ namespace actor
|
|||||||
if (value==6) return "RAND";
|
if (value==6) return "RAND";
|
||||||
if (value==7) return "RANDV";
|
if (value==7) return "RANDV";
|
||||||
if (value==8) return "HUNT";
|
if (value==8) return "HUNT";
|
||||||
|
if (value==9) return "RANDJ";
|
||||||
return "NONE";
|
return "NONE";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -349,7 +351,7 @@ namespace actor
|
|||||||
fprintf(f, " %spos: %i %i %i\n", ws, act->pos.x, act->pos.y, act->pos.z);
|
fprintf(f, " %spos: %i %i %i\n", ws, act->pos.x, act->pos.y, act->pos.z);
|
||||||
fprintf(f, " %ssize: %i %i %i\n", ws, act->size.x, act->size.y, act->size.z);
|
fprintf(f, " %ssize: %i %i %i\n", ws, act->size.x, act->size.y, act->size.z);
|
||||||
if (act->orient!=0) fprintf(f, " %sorient: %s\n", ws, numToOrient(act->orient));
|
if (act->orient!=0) fprintf(f, " %sorient: %s\n", ws, numToOrient(act->orient));
|
||||||
if (act->anim_cycle!=0) fprintf(f, " %sanim-cycle: %s\n", ws, act->anim_cycle==0 ? "WALK" : act->anim_cycle==1 ? "SEQ" : "MIN");
|
if (act->anim_cycle!=0) fprintf(f, " %sanim-cycle: %s\n", ws, act->anim_cycle==0 ? "WALK" : act->anim_cycle==1 ? "SEQ" : act->anim_cycle==2 ? "MIN" : "DUO");
|
||||||
if (act->anim_wait!=0) fprintf(f, " %sanim-wait: %i\n", ws, act->anim_wait);
|
if (act->anim_wait!=0) fprintf(f, " %sanim-wait: %i\n", ws, act->anim_wait);
|
||||||
if (act->flags!=0) fprintf(f, " %sflags: %s\n", ws, numToFlags(act->flags));
|
if (act->flags!=0) fprintf(f, " %sflags: %s\n", ws, numToFlags(act->flags));
|
||||||
if (act->react_mask!=0) fprintf(f, " %sreact-mask: %s\n", ws, numToOrient(act->react_mask));
|
if (act->react_mask!=0) fprintf(f, " %sreact-mask: %s\n", ws, numToOrient(act->react_mask));
|
||||||
@@ -539,7 +541,7 @@ namespace actor
|
|||||||
if (act->flags & FLAG_SPECIAL)
|
if (act->flags & FLAG_SPECIAL)
|
||||||
{
|
{
|
||||||
if (act->name[0]=='B') { // Es un booster
|
if (act->name[0]=='B') { // Es un booster
|
||||||
hero::collectBooster(act->name[1]-48, (act->name[3]-48)*10+(act->name[4]-48));
|
hero::collectBooster(&act->name[5], (act->name[2]-48)*10+(act->name[3]-48));
|
||||||
} else if (act->name[0]=='S') { // Es un skill
|
} else if (act->name[0]=='S') { // Es un skill
|
||||||
hero::giveSkill(&act->name[2]);
|
hero::giveSkill(&act->name[2]);
|
||||||
} else if (act->name[0]=='P') {
|
} else if (act->name[0]=='P') {
|
||||||
@@ -763,6 +765,7 @@ namespace actor
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MOV_RANDV:
|
case MOV_RANDV:
|
||||||
|
case MOV_RANDJ:
|
||||||
switch (rand()%8)
|
switch (rand()%8)
|
||||||
{
|
{
|
||||||
case 0: act->mov_push=PUSH_YP; break;
|
case 0: act->mov_push=PUSH_YP; break;
|
||||||
@@ -814,6 +817,14 @@ namespace actor
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [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->pos.z==0) act->react_push=1;
|
||||||
|
if (act->pos.z>=6) act->react_push=-1;
|
||||||
|
act->pos.z += act->react_push;
|
||||||
|
}
|
||||||
|
|
||||||
int vel = (act->flags&FLAG_HERO) && (hero::getBoostRun()>0) ? 2 : 1;
|
int vel = (act->flags&FLAG_HERO) && (hero::getBoostRun()>0) ? 2 : 1;
|
||||||
|
|
||||||
if (act->push & PUSH_ZP) {
|
if (act->push & PUSH_ZP) {
|
||||||
@@ -1576,7 +1587,7 @@ namespace actor
|
|||||||
return dead;
|
return dead;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int getBoosterFromString(char *booster)
|
const int getBoosterFromString(const char *booster)
|
||||||
{
|
{
|
||||||
static const char *boostset_name[4] = {"RUN", "GOD", "JUMP", "LIVE"};
|
static const char *boostset_name[4] = {"RUN", "GOD", "JUMP", "LIVE"};
|
||||||
for (int i=0;i<4;++i)
|
for (int i=0;i<4;++i)
|
||||||
@@ -1613,10 +1624,10 @@ namespace actor
|
|||||||
return value!=0;
|
return value!=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void collectBooster(int booster, int id)
|
void collectBooster(const char *booster, int id)
|
||||||
{
|
{
|
||||||
boosters_collected[id] = true;
|
boosters_collected[id] = true;
|
||||||
switch (booster)
|
switch (getBoosterFromString(booster))
|
||||||
{
|
{
|
||||||
case BOOST_GOD: boost_god = 99*2; break;
|
case BOOST_GOD: boost_god = 99*2; break;
|
||||||
case BOOST_RUN: boost_steps = 99*2; break;
|
case BOOST_RUN: boost_steps = 99*2; break;
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
#define MOV_RAND 6 // Es mou en direcció aleatòria
|
#define MOV_RAND 6 // Es mou en direcció aleatòria
|
||||||
#define MOV_RANDV 7 // Es mou en direcció aleatòria, diagonals incloses
|
#define MOV_RANDV 7 // Es mou en direcció aleatòria, diagonals incloses
|
||||||
#define MOV_HUNT 8 // Persegueix al heroi
|
#define MOV_HUNT 8 // Persegueix al heroi
|
||||||
|
#define MOV_RANDJ 9 // Es mou en direcció aleatòria, diagonals incloses, pegant botets
|
||||||
|
|
||||||
// Boosters
|
// Boosters
|
||||||
#define BOOST_NONE 0
|
#define BOOST_NONE 0
|
||||||
@@ -202,10 +203,10 @@ namespace actor
|
|||||||
void die();
|
void die();
|
||||||
bool isDead();
|
bool isDead();
|
||||||
|
|
||||||
const int getBoosterFromString(char *booster);
|
const int getBoosterFromString(const char *booster);
|
||||||
const char *getBoosterName(int booster);
|
const char *getBoosterName(int booster);
|
||||||
bool giveBooster(char *booster);
|
bool giveBooster(char *booster);
|
||||||
void collectBooster(int booster, int id);
|
void collectBooster(const char *booster, int id);
|
||||||
bool wasBoosterCollected(int id);
|
bool wasBoosterCollected(int id);
|
||||||
int getBoostGod();
|
int getBoostGod();
|
||||||
int getBoostRun();
|
int getBoostRun();
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ namespace modules
|
|||||||
if (act->flags & FLAG_SPECIAL)
|
if (act->flags & FLAG_SPECIAL)
|
||||||
{
|
{
|
||||||
if (act->name[0]=='B') { // Es un booster
|
if (act->name[0]=='B') { // Es un booster
|
||||||
minirooms[room].specials |= actor::hero::getBoosterFromString(&act->name[2]);
|
minirooms[room].specials |= actor::hero::getBoosterFromString(&act->name[5]);
|
||||||
} else if (act->name[0]=='S') { // Es un skill
|
} else if (act->name[0]=='S') { // Es un skill
|
||||||
minirooms[room].specials |= (actor::hero::getSkillFromString(&act->name[2])<<8);
|
minirooms[room].specials |= (actor::hero::getSkillFromString(&act->name[2])<<8);
|
||||||
} else if (act->name[0]=='P') { // Es una part
|
} else if (act->name[0]=='P') { // Es una part
|
||||||
|
|||||||
@@ -342,7 +342,7 @@ namespace modules
|
|||||||
selected->pos.y = floating_position.y*8;
|
selected->pos.y = floating_position.y*8;
|
||||||
}
|
}
|
||||||
draw::draw(148+floating_position.x*16-floating_position.y*16,75+floating_position.x*8+floating_position.y*8,32,16,160,0);
|
draw::draw(148+floating_position.x*16-floating_position.y*16,75+floating_position.x*8+floating_position.y*8,32,16,160,0);
|
||||||
if (input::mouseClk(1)) actor::setFloatingEditing(false);
|
if (input::mouseClk(1)) { actor::setFloatingEditing(false); room::editor::modify(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
draw::stencil::enable();
|
draw::stencil::enable();
|
||||||
@@ -829,9 +829,9 @@ namespace modules
|
|||||||
}
|
}
|
||||||
line+=10;
|
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_RANDV, MOV_HUNT}, {"NONE", "X", "Y", "Z", "CW", "CCW", "RAND", "RANDV", "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, MOV_RANDJ}, {"NONE", "X", "Y", "Z", "CW", "CCW", "RAND", "RANDV", "HUNT", "RANDJ"}, 48);
|
||||||
line+=10;
|
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);
|
changed |= btn_opt("ANIMCYC", 2, line, act->anim_cycle, {0, 1, 2, 3}, {"0 1 0 2", "0 1 2 3", "0 1 2", "0 1 0 1"}, 48);
|
||||||
line+=10;
|
line+=10;
|
||||||
|
|
||||||
//draw::print("ANIM SPEED:", 2, 156, 15, 0);
|
//draw::print("ANIM SPEED:", 2, 156, 15, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user