lock box now display text when player is close by + fixed player jumping off coins + added single-file support
This commit is contained in:
parent
8e567fc419
commit
f855642a60
|
@ -0,0 +1,42 @@
|
|||
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
|
@ -18,50 +18,4 @@ Entities:
|
|||
Weight :
|
||||
0
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> HP equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
|
||||
// else if entityType = 9 (beat block)
|
||||
[.. time_on, time_off, start] with
|
||||
time_{on,off} = double[>0.0]
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -12,34 +12,4 @@ Entities:
|
|||
Weight :
|
||||
50
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
else if entityType = 6 (text box)
|
||||
[.. text] with
|
||||
text = {char*}
|
||||
|
||||
else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, r, g, b] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -15,39 +15,4 @@ Entities:
|
|||
Weight :
|
||||
50
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -7,34 +7,4 @@ Entities :
|
|||
Weight :
|
||||
50
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
else if entityType = 6 (text box)
|
||||
[.. text] with
|
||||
text = {char*}
|
||||
|
||||
else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, r, g, b] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -7,53 +7,12 @@ Blocks :
|
|||
[13.0, 0.0, -1.0, 2.0, 10.0, 2.0, 0.0, 0.0, 128, 128, 128]
|
||||
|
||||
Entities:
|
||||
[-1.0, 15.0, -1.0, 2.0, 2.0, 2.0, 0.0, 0.0, 255, 255, 255, 1, 10, 0]
|
||||
[2.0 , 0.0 , 2.0 , 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 255, 1, 0 , 6, hope you like parkour, 255, 192, 192]
|
||||
[-2.0, 1.0 , -2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 255, 255, 128, 1, 0 , 8, 50, 1, 128, 128, 128]
|
||||
[-1.5, 1.5 , -1.5, 1.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192, 1, 0 , 7, levels/level_01/, 7, great, 192, 192, 192]
|
||||
[-1.0, 15.0, -1.0, 2.0, 2.0, 2.0, 0.0, 0.0, 255, 255, 255, 10, 0, 0]
|
||||
[2.0 , 0.0 , 2.0 , 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 255, 1 , 0, 6, hope you like parkour, 255, 192, 192]
|
||||
[-2.0, 1.0 , -2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 255, 255, 128, 1 , 0, 8, 50, 1, 128, 128, 128]
|
||||
[-1.5, 1.5 , -1.5, 1.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192, 1 , 0, 7, levels/level_02/, 1, great, 192, 192, 192]
|
||||
|
||||
Weight :
|
||||
0
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -9,10 +9,10 @@ Blocks :
|
|||
[-1.0, 15.0, 15.0, 2.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192]
|
||||
|
||||
Entities :
|
||||
[-2.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[-2.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 12.0]
|
||||
[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 0.0, 0.0, 13.7, 0.0, 0.0, 12.5]
|
||||
[-14.0, 7.5, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0]
|
||||
|
@ -21,45 +21,4 @@ Entities :
|
|||
Weight :
|
||||
50
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -9,10 +9,10 @@ Blocks :
|
|||
[-1.0, 15.0, 15.0, 2.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192]
|
||||
|
||||
Entities :
|
||||
[-2.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[-2.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 12.0, 0.0, 0.0]
|
||||
[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 5, 13.7, 0.0, 0.0, 12.5, 0.0, 0.0]
|
||||
[-1.0, 7.5, -14.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 5, 0.0, 7.5, 0.0, 0.0, 10.0, 0.0]
|
||||
|
@ -21,45 +21,4 @@ Entities :
|
|||
Weight :
|
||||
50
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -9,10 +9,10 @@ Blocks :
|
|||
[-1.0, 15.0, 15.0, 2.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192]
|
||||
|
||||
Entities :
|
||||
[-2.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[-2.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 0]
|
||||
[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 0.0, 0.0, 13.7, 1, 1, 180]
|
||||
[-14.0, 7.5, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 90]
|
||||
|
@ -21,45 +21,4 @@ Entities :
|
|||
Weight :
|
||||
50
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -9,10 +9,10 @@ Blocks :
|
|||
[-1.0, 15.0, 15.0, 2.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192]
|
||||
|
||||
Entities :
|
||||
[-2.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 1, 2, 0]
|
||||
[-2.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[ 1.0, 16.2, -2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[-2.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[ 1.0, 16.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 128, 2, 0, 0]
|
||||
[-1.0, 1.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 0]
|
||||
[-1.0, 15.0, -1.0, 2.0, 1.0, 2.0, 0.0, 0.0, 128, 128, 128, 1, 0, 4, 13.7, 0.0, 0.0, 1, 1, 180]
|
||||
[-1.0, 7.5, -14.0, 2.0, 1.0, 2.0, 0.0, 0.0, 192, 192, 192, 1, 0, 4, 0.0, 7.5, 0.0, 4, 3, 90]
|
||||
|
@ -21,45 +21,4 @@ Entities :
|
|||
Weight :
|
||||
50
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -17,45 +17,4 @@ Entities :
|
|||
Weight :
|
||||
75
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -21,45 +21,4 @@ Entities :
|
|||
Weight :
|
||||
75
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
||||
$
|
|
@ -0,0 +1,59 @@
|
|||
Blocks :
|
||||
[-16.0, -1.0, -16.0, 32.0, 1.0, 32.0, 0.0, 0.0, 128, 128, 128]
|
||||
[-5.0, 13.0, -5.0, 10.0, 1.0, 10.0, 0.0, 0.0, 255, 255, 255]
|
||||
[-1.0, 0.0, -15.0, 2.0, 10.0, 2.0, 0.0, 0.0, 128, 128, 128]
|
||||
[-1.0, 0.0, 13.0, 2.0, 10.0, 2.0, 0.0, 0.0, 128, 128, 128]
|
||||
[-15.0, 0.0, -1.0, 2.0, 10.0, 2.0, 0.0, 0.0, 128, 128, 128]
|
||||
[13.0, 0.0, -1.0, 2.0, 10.0, 2.0, 0.0, 0.0, 128, 128, 128]
|
||||
|
||||
Entities:
|
||||
[-1.0, 15.0, -1.0, 2.0, 2.0, 2.0, 0.0, 0.0, 255, 255, 255, 10, 0, 0]
|
||||
[2.0 , 0.0 , 2.0 , 1.0, 1.0, 1.0, 0.0, 0.0, 255, 255, 255, 1 , 0, 6, hope you like parkour, 255, 192, 192]
|
||||
[-2.0, 1.0 , -2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 255, 255, 128, 1 , 0, 8, 50, 1, 128, 128, 128]
|
||||
[-1.5, 1.5 , -1.5, 1.0, 1.0, 1.0, 0.0, 0.0, 192, 192, 192, 1 , 0, 7, levels/level_01/, 7, great, 192, 192, 192]
|
||||
|
||||
Weight :
|
||||
0
|
||||
|
||||
$
|
||||
blocks:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
||||
|
||||
teleporters:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
||||
|
||||
entities:
|
||||
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
||||
// Entity types are :
|
||||
// 0 (coin) -> damage equals the coin's value
|
||||
// 1 (still explosive)
|
||||
// 2 (seeking explosive)
|
||||
// 3 (shooting still explosive)
|
||||
// if entityType = 4 (moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
{mult,divd} = int
|
||||
{phase} = int[0, 360]
|
||||
|
||||
// else if entityType = 5 (linear moving platform)
|
||||
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
||||
amplitude_{x,y,z} = double[>= 0.0]
|
||||
speed_{x,y,z} = double
|
||||
|
||||
// else if entityType = 6 (text box)
|
||||
[.. text, tred, tgreen, tblue] with
|
||||
text = {char*}
|
||||
|
||||
// else if entityType = 7 (warp text box)
|
||||
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
||||
{dest_folder,text} = {char*} (length <= 50)
|
||||
{r,g,b} = int[0-256]
|
||||
|
||||
|
||||
// else if entityType = 8 (lock box)
|
||||
[.. cost, doPay, tred, tgreen, tblue] with
|
||||
cost = int[> 0] (0 breaks)
|
||||
doPay = {0, 1} (bool)
|
||||
|
||||
else
|
||||
[..]
|
BIN
obj/display.o
BIN
obj/display.o
Binary file not shown.
BIN
obj/entities.o
BIN
obj/entities.o
Binary file not shown.
BIN
obj/generation.o
BIN
obj/generation.o
Binary file not shown.
BIN
obj/hash.o
BIN
obj/hash.o
Binary file not shown.
BIN
obj/main.o
BIN
obj/main.o
Binary file not shown.
BIN
obj/menus.o
BIN
obj/menus.o
Binary file not shown.
BIN
obj/move.o
BIN
obj/move.o
Binary file not shown.
BIN
res/beat_off.png
BIN
res/beat_off.png
Binary file not shown.
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 245 B |
BIN
res/beat_on.png
BIN
res/beat_on.png
Binary file not shown.
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 713 B |
|
@ -123,6 +123,18 @@ void moving_xyz_line(double x, double y, double z, double w, double h, double d,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// metai1 = id of the interface
|
||||
// metai2 = price
|
||||
// metai3 = doPay
|
||||
// metach1 = text (stored here to free() easily)
|
||||
void subtitle_text_box(double x, double y, double z, double w, double h, double d, double hz_angle, double vt_angle, float dtime, entity* ent, cube_0* ret) {
|
||||
if(distance_pt_cube_0_3d_infinite(camx, camy, camz, ret) <= 1.5) {
|
||||
gl_drawString(fShader, ent->metach1, 0.0f, -0.7f, 0.03f, ret->red, ret->green, ret->blue, 0.003f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// metad1 = time ON
|
||||
// metad2 = time OFF
|
||||
// metad3 = current time left
|
||||
|
@ -237,7 +249,7 @@ void pop_and_tp(float dtime, int* hp, int* dmg, entity* ent, cube_0* ret) {
|
|||
// metach1 = text (stored here to free() easily)
|
||||
void locker(float dtime, int* hp, int* dmg, entity* ent, cube_0* ret) {
|
||||
//printf("%d %d %d <<<<\n", ent->metai1, ent->metai2, ent->metai3);
|
||||
interface_set(ent->metai1);
|
||||
//interface_set(ent->metai1);
|
||||
if(coins >= ent->metai2) {
|
||||
if(ent->metai3) {
|
||||
coins -= ent->metai2;
|
||||
|
|
|
@ -15,6 +15,7 @@ void speen3(double x, double y, double z, double w, double h, double d, double h
|
|||
void moving_xyz(double x, double y, double z, double w, double h, double d, double hz_angle, double vt_angle, float dtime, entity* ent, cube_0* ret);
|
||||
void moving_xyz_line(double x, double y, double z, double w, double h, double d, double hz_angle, double vt_angle, float dtime, entity* ent, cube_0* ret);
|
||||
void go_to_player(double x, double y, double z, double w, double h, double d, double hz_angle, double vt_angle, float dtime, entity* ent, cube_0* ret);
|
||||
void subtitle_text_box(double x, double y, double z, double w, double h, double d, double hz_angle, double vt_angle, float dtime, entity* ent, cube_0* ret);
|
||||
void beating_block(double x, double y, double z, double w, double h, double d, double hz_angle, double vt_angle, float dtime, entity* ent, cube_0* ret);
|
||||
|
||||
void detectHit(float dtime, int* hp, int* dmg, entity* ent, cube_0* ret);
|
||||
|
|
|
@ -27,6 +27,8 @@ int total_weight;
|
|||
int coins;
|
||||
int fct_entry_size;
|
||||
|
||||
bool is_one_room;
|
||||
|
||||
static char** to_free;
|
||||
static int to_length;
|
||||
|
||||
|
@ -106,9 +108,9 @@ void init_ent_generator(int n) {
|
|||
|
||||
hashtbl_entities[8].id = 8;
|
||||
hashtbl_entities[8].tex = 7;
|
||||
hashtbl_entities[7].tex2 = 7;
|
||||
hashtbl_entities[8].tex2 = 7;
|
||||
hashtbl_entities[8].name = "Lock";
|
||||
hashtbl_entities[8].updatePos = NULL;
|
||||
hashtbl_entities[8].updatePos = &subtitle_text_box;
|
||||
hashtbl_entities[8].onHit = &locker;
|
||||
hashtbl_entities[8].onDeath = NULL;
|
||||
|
||||
|
@ -586,7 +588,7 @@ void parse_one_room(int id, char* filename) {
|
|||
msg[ki] = '\0';
|
||||
// k=18 if singlt digit
|
||||
|
||||
pool[id].area->ents[k]->metai1 = build_text_box(msg, ired, igreen, iblue);
|
||||
//pool[id].area->ents[k]->metai1 = build_text_box(msg, ired, igreen, iblue);
|
||||
pool[id].area->ents[k]->metai2 = cost;
|
||||
pool[id].area->ents[k]->metai3 = doPay;
|
||||
pool[id].area->ents[k]->metach1 = msg;
|
||||
|
@ -678,6 +680,14 @@ void parse_rooms(int n_rooms, char* folder) {
|
|||
free(name);
|
||||
printf("Total sum : %d\n", total_weight);
|
||||
|
||||
if(total_weight == 0) {
|
||||
// avoid floating point exception
|
||||
total_weight = 1;
|
||||
is_one_room = true;
|
||||
} else {
|
||||
is_one_room = false;
|
||||
}
|
||||
|
||||
generate_nearby_chunks(0);
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
}
|
||||
|
@ -719,16 +729,18 @@ void generate_nearby_chunks(int render_dist) {
|
|||
if(!hashtbl_mem(visited, player_chx + w, player_chy + h)) {
|
||||
printf("generating (%d, %d)... ", player_chx + w, player_chy + h); fflush(stdout);
|
||||
//build_starting_chunk(player_chx + w, player_chy + h);
|
||||
int pick = rand()%total_weight;
|
||||
int pick = rand()%(abs(total_weight));
|
||||
if(w == 0 && h == 0) { // 1st room will always be room_0
|
||||
pick = -1;
|
||||
}
|
||||
printf("R = %d ", pick); fflush(stdout);
|
||||
int sum = 0;
|
||||
bool has_spawned = false;
|
||||
for(int k = 0; k < pool_size; k++) {
|
||||
sum += pool[k].weight;
|
||||
if(pick < sum) {
|
||||
printf("chose %d\n", k); fflush(stdout);
|
||||
has_spawned = true;
|
||||
room* new = malloc(sizeof(room));
|
||||
copy_room(pool[k].area, new, player_chx + w, player_chy + h);
|
||||
//generate_terrain(new);
|
||||
|
@ -736,6 +748,10 @@ void generate_nearby_chunks(int render_dist) {
|
|||
k = pool_size+1;
|
||||
}
|
||||
}
|
||||
if(!has_spawned) {
|
||||
printf("chose NULL\n"); fflush(stdout);
|
||||
hashtbl_add(visited, player_chx + w, player_chy + h, NULL);
|
||||
}
|
||||
printf("Done\n");
|
||||
}
|
||||
}
|
||||
|
|
34
src/hash.c
34
src/hash.c
|
@ -57,23 +57,25 @@ void linkedList_add(linkedList lst, int chx, int chy, room* area) {
|
|||
}
|
||||
|
||||
void free_all_cubes(room* r) {
|
||||
for(int k = 0; k < r->map_size; k++) {
|
||||
free(r->map[k]);
|
||||
if(r != NULL) {
|
||||
for(int k = 0; k < r->map_size; k++) {
|
||||
free(r->map[k]);
|
||||
}
|
||||
for(int k = 0; k < r->tps_size; k++) {
|
||||
free(r->tps[k]->hitbox);
|
||||
free(r->tps[k]);
|
||||
}
|
||||
for(int k = 0; k < r->ent_memlen; k++) {
|
||||
//free(r->ents[k]->metach1);
|
||||
//free(r->ents[k]->metach2);
|
||||
free(r->ents[k]->hitpoints);
|
||||
free(r->ents[k]->pos);
|
||||
free(r->ents[k]);
|
||||
}
|
||||
free(r->ents);
|
||||
free(r->tps);
|
||||
free(r->map);
|
||||
}
|
||||
for(int k = 0; k < r->tps_size; k++) {
|
||||
free(r->tps[k]->hitbox);
|
||||
free(r->tps[k]);
|
||||
}
|
||||
for(int k = 0; k < r->ent_memlen; k++) {
|
||||
//free(r->ents[k]->metach1);
|
||||
//free(r->ents[k]->metach2);
|
||||
free(r->ents[k]->hitpoints);
|
||||
free(r->ents[k]->pos);
|
||||
free(r->ents[k]);
|
||||
}
|
||||
free(r->ents);
|
||||
free(r->tps);
|
||||
free(r->map);
|
||||
}
|
||||
|
||||
void linkedList_free(linkedList lst) {
|
||||
|
|
|
@ -246,8 +246,9 @@ void processInput(GLFWwindow *window, float dtime) {
|
|||
if(glfwGetKey(window, GLFW_KEY_R) == GLFW_PRESS) {
|
||||
if(!isMenuOpen() && !rPress) {
|
||||
rPress = true;
|
||||
//reset_everything(window, 4, "levels/level_00/");
|
||||
reset_everything(window, 4, "levels/level_00/");
|
||||
//reset_everything(window, 7, "levels/level_01/");
|
||||
//reset_everything(window, 1, "levels/level_02/");
|
||||
}
|
||||
} else {
|
||||
rPress = false;
|
||||
|
@ -443,8 +444,8 @@ int main_alt() {
|
|||
generate_texture(5, "res/steel.jpeg", JPEG);
|
||||
generate_texture(6, "res/gateway.jpeg", JPEG);
|
||||
generate_texture(7, "res/lock.png", PNG);
|
||||
generate_texture(8, "res/beat_on.png", PNG);
|
||||
generate_texture(9, "res/beat_off.png", PNG);
|
||||
generate_texture(8, "res/beat_on.png", JPG);
|
||||
generate_texture(9, "res/beat_off.png", JPG);
|
||||
|
||||
printf("-----------------------------------------------------------------------------------------------\n"); fflush(stdout);
|
||||
|
||||
|
|
42
src/move.c
42
src/move.c
|
@ -265,7 +265,7 @@ bool is_colliding(float dtime) {
|
|||
remove_entity(current_room->ents, ¤t_room->ent_memlen, ¤t_room->ent_len, k);
|
||||
}
|
||||
}
|
||||
if(updateForces) {
|
||||
if(updateForces && current_room->ents[k]->entity_type != 0) {
|
||||
updateF(current_room->ents[k]->pos, (double)dtime);
|
||||
}
|
||||
if(current_room->ents[k]->entity_type == 9) {
|
||||
|
@ -339,24 +339,32 @@ void movePlayerG(float dtime) {
|
|||
|
||||
void teleport_on_edge() {
|
||||
if(camx >= room_width) {
|
||||
camx -= 2.0*room_width;
|
||||
player_chx += 1;
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
resetProj();
|
||||
if(!is_one_room) {
|
||||
camx -= 2.0*room_width;
|
||||
player_chx += 1;
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
resetProj();
|
||||
}
|
||||
} else if(camx <= -room_width) {
|
||||
camx += 2.0*room_width;
|
||||
player_chx -= 1;
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
resetProj();
|
||||
if(!is_one_room) {
|
||||
camx += 2.0*room_width;
|
||||
player_chx -= 1;
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
resetProj();
|
||||
}
|
||||
} else if(camz >= room_depth) {
|
||||
camz -= 2.0*room_depth;
|
||||
player_chy += 1;
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
resetProj();
|
||||
if(!is_one_room) {
|
||||
camz -= 2.0*room_depth;
|
||||
player_chy += 1;
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
resetProj();
|
||||
}
|
||||
} else if(camz <= -room_depth) {
|
||||
camz += 2.0*room_depth;
|
||||
player_chy -= 1;
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
resetProj();
|
||||
if(!is_one_room) {
|
||||
camz += 2.0*room_depth;
|
||||
player_chy -= 1;
|
||||
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
|
||||
resetProj();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -166,6 +166,7 @@ extern double fz;
|
|||
extern int njumps;
|
||||
|
||||
extern unsigned int fffff;
|
||||
extern unsigned int fShader;
|
||||
extern int gamemode;
|
||||
|
||||
extern float incr;
|
||||
|
@ -182,6 +183,8 @@ extern int loc_proj;
|
|||
extern int loc_frag;
|
||||
extern int loc_tex;
|
||||
|
||||
extern bool is_one_room;
|
||||
|
||||
extern unsigned int textures[16];
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue