Thanks. I really needed that.
I guess I have to explain about the map model as well...
CODE FROM REAL GAME: obj_camera - Alarm 0 Event - Works - Speed = efficient.
[codebox]p3dc_clear_model(level_colid);
//Create a player collision model
player_colid=p3dc_begin_model();
p3dc_add_block(-16,-16,z,+16,+16,z+48);
p3dc_end_model();
//Reset all variables that add collision models...
obj_camera.fct=0
obj_camera.rct=0
obj_camera.bct=0
obj_camera.hfct=0
//Begin Model making and add floors, walls, ramps, etc. to the map collision model.
level_colid=p3dc_begin_model();
with (marker_floor)
{
obj_camera.floorcollisionsx[obj_camera.fct]=x
obj_camera.floorcollisionsy[obj_camera.fct]=y
obj_camera.floorcollisionsz[obj_camera.fct]=z
obj_camera.fct+=1
}
for (o=0; o<obj_camera.fct; o+=1)
{
p3dc_add_block(obj_camera.floorcollisionsx[o]-32,obj_camera.floorcollisionsy[o]-32,obj_camera.floorcollisionsz[o]-1,obj_camera.floorcollisionsx[o]+32,obj_camera.flo
orcollisionsy[o]+32,obj_camera.floorcollisionsz[o])
}
with (marker_block)
{
obj_camera.blockcollisionsx[obj_camera.bct]=x
obj_camera.blockcollisionsy[obj_camera.bct]=y
obj_camera.blockcollisionsz[obj_camera.bct]=z
obj_camera.blockcollisionsrot[obj_camera.bct]=dire
ction
obj_camera.bct+=1
}
for (o=0; o<obj_camera.bct; o+=1)
{
if blockcollisionsrot[o]=0 or blockcollisionsrot[o]=180
{
p3dc_add_wall(obj_camera.blockcollisionsx[o]-32,obj_camera.blockcollisionsy[o],obj_camera.block
collisionsz[o],obj_camera.blockcollisionsx[o]+32,ob
j_camera.blockcollisionsy[o],obj_camera.blockcollis
ionsz[o]+64)
}
else
if blockcollisionsrot[o]=90 or blockcollisionsrot[o]=270
{
p3dc_add_wall(obj_camera.blockcollisionsx[o],obj_c
amera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o],obj_camera.blockcollisionsy[o]+32,ob
j_camera.blockcollisionsz[o]+64)
}
else
if blockcollisionsrot[o]=45 or blockcollisionsrot[o]=225
{
p3dc_add_wall(obj_camera.blockcollisionsx[o]-32,obj_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o]+32,obj_camera.blockcollisionsy[o]+32
,obj_camera.blockcollisionsz[o]+64)
}
else
if blockcollisionsrot[o]=135 or blockcollisionsrot[o]=315
{
p3dc_add_wall(obj_camera.blockcollisionsx[o]+32,ob
j_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o]-32,obj_camera.blockcollisionsy[o]+32,obj_camera.bl
ockcollisionsz[o]+64)
}
else
{
p3dc_add_block(obj_camera.blockcollisionsx[o]-32,obj_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o]+32,obj_camera.blockcollisionsy[o]+32
,obj_camera.blockcollisionsz[o]+64)
}
}
with (marker_half_floor)
{
obj_camera.hfloorcollisionsx[obj_camera.hfct]=x
obj_camera.hfloorcollisionsy[obj_camera.hfct]=y
obj_camera.hfloorcollisionsz[obj_camera.hfct]=z
obj_camera.hfloorcollisionsrot[obj_camera.hfct]=di
rection
obj_camera.hfct+=1
}
for (o=0; o<obj_camera.hfct; o+=1)
{
if hfloorcollisionsrot[o]=0
{
p3dc_add_triangle(obj_camera.hfloorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o],
obj_camera.hfloorcollisionsx[o]+32,obj_camera.hflo
orcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o],
obj_camera.hfloorcollisionsx[o]+32,obj_camera.hflo
orcollisionsy[o]+32,obj_camera.hfloorcollisionsz[o]
)
//d3d_vertex_normal_texture(x-32,y-32,z,x-32,y-32,z,0,0)
//d3d_vertex_normal_texture(x+32,y-32,z,x+32,y-32,z,0,1)
//d3d_vertex_normal_texture(x+32,y+32,z,x+32,y+32,z,
1,1)
}
else
if hfloorcollisionsrot[o]=90
{
p3dc_add_triangle(obj_camera.hfloorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o],
obj_camera.hfloorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]+32,obj_camera.h
floorcollisionsz[o],
obj_camera.hfloorcollisionsx[o]+32,obj_camera.hflo
orcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o])
//d3d_vertex_normal_texture(x-32,y-32,z,x-32,y-32,z,0,0)
//d3d_vertex_normal_texture(x-32,y+32,z,x-32,y+32,z,1,0)
//d3d_vertex_normal_texture(x+32,y-32,z,x+32,y-32,z,0,1)
}
else
if hfloorcollisionsrot[o]=180
{
p3dc_add_triangle(obj_camera.hfloorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o],
obj_camera.hfloorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]+32,obj_camera.h
floorcollisionsz[o],
obj_camera.hfloorcollisionsx[o]+32,obj_camera.hflo
orcollisionsy[o]+32,obj_camera.hfloorcollisionsz[o]
)
//d3d_vertex_normal_texture(x-32,y-32,z,x-32,y-32,z,0,0)
//d3d_vertex_normal_texture(x-32,y+32,z,x-32,y+32,z,1,0)
//d3d_vertex_normal_texture(x+32,y+32,z,x+32,y+32,z,
1,1)
}
else
if hfloorcollisionsrot[o]=270
{
p3dc_add_triangle(obj_camera.hfloorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]+32,obj_camera.h
floorcollisionsz[o],
obj_camera.hfloorcollisionsx[o]+32,obj_camera.hflo
orcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o],
obj_camera.hfloorcollisionsx[o]+32,obj_camera.hflo
orcollisionsy[o]+32,obj_camera.hfloorcollisionsz[o]
)
//d3d_vertex_normal_texture(x-32,y+32,z,x-32,y+32,z,1,0)
//d3d_vertex_normal_texture(x+32,y-32,z,x+32,y-32,z,0,1)
//d3d_vertex_normal_texture(x+32,y+32,z,x+32,y+32,z,
1,1)
}
else
{
p3dc_add_block(obj_camera.blockcollisionsx[o]-32,obj_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o]+32,obj_camera.blockcollisionsy[o]+32
,obj_camera.blockcollisionsz[o]+64)
}
}
with (marker_ramp) //Now for the complicated S**T.
{
obj_camera.rampcollisionsx[obj_camera.rct]=x
obj_camera.rampcollisionsy[obj_camera.rct]=y
obj_camera.rampcollisionsz[obj_camera.rct]=z
obj_camera.rampcollisionsrot[obj_camera.rct]=direc
tion
obj_camera.rct+=1
}
with (obj_ramp_parent_x) //Now for the complicated S**T.
{
obj_camera.rampcollisionsx[obj_camera.rct]=x
obj_camera.rampcollisionsy[obj_camera.rct]=y
obj_camera.rampcollisionsz[obj_camera.rct]=z
obj_camera.rampcollisionsrot[obj_camera.rct]=direc
tion
obj_camera.rct+=1
}
with (obj_ramp_parent_y) //Now for the complicated S**T.
{
obj_camera.rampcollisionsx[obj_camera.rct]=x
obj_camera.rampcollisionsy[obj_camera.rct]=y
obj_camera.rampcollisionsz[obj_camera.rct]=z
obj_camera.rampcollisionsrot[obj_camera.rct]=direc
tion
obj_camera.rct+=1
}
for (o=0; o<obj_camera.rct; o+=1)
{
if rampcollisionsrot[o]=0
{
p3dc_add_floor(obj_camera.rampcollisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32)
p3dc_add_floor(obj_camera.rampcollisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o])
p3dc_add_wall(obj_camera.rampcollisionsx[o],obj_ca
mera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o],ob
j_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o],obj_camera.rampcolli
sionsy[o]-32,obj_camera.rampcollisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o],ob
j_camera.rampcollisionsy[o]+32,obj_camera.rampcolli
sionsz[o],
obj_camera.rampcollisionsx[o]-128,obj_camera.rampcollisionsy[o]+32,obj_camera.ra
mpcollisionsz[o],
obj_camera.rampcollisionsx[o],obj_camera.rampcolli
sionsy[o]+32,obj_camera.rampcollisionsz[o]+32)
}
else
if rampcollisionsrot[o]=90
{
p3dc_add_triangle(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o]+128,obj_camera.ra
mpcollisionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o],obj_camera.rampcollisionsz[o]+32,
obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o]+128,obj_camera.ra
mpcollisionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o]+128,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o],obj_camera.rampcollisionsz[o]+32)
p3dc_add_floor(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o]+128,obj_camera.ra
mpcollisionsz[o],obj_camera.rampcollisionsx[o],obj_
camera.rampcollisionsy[o]+32,obj_camera.rampcollisi
onsz[o])
p3dc_add_wall(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o],obj_camera.rampcollisionsx[o]+32,obj_c
amera.rampcollisionsy[o],obj_camera.rampcollisionsz
[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o],
obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o]+128,obj_camera.ra
mpcollisionsz[o],
obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o]+32
,obj_camera.rampcollisionsy[o],obj_camera.rampcolli
sionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o]+128,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o],obj_camera.rampcollisionsz[o]+32)
}
else
if rampcollisionsrot[o]=270
{
p3dc_add_triangle(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o],obj_camera.rampcollisionsz[o]+32,
obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o]-128,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o],obj_camera.rampcollisionsz[o]+32)
p3dc_add_floor(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o],obj_camera.rampc
ollisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_
camera.rampcollisionsz[o])
p3dc_add_wall(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o],obj_camera.rampcollisionsx[o]+32,obj_c
amera.rampcollisionsy[o],obj_camera.rampcollisionsz
[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o],
obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o]+32
,obj_camera.rampcollisionsy[o],obj_camera.rampcolli
sionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o]-128,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]+32,obj_camera.rampco
llisionsy[o],obj_camera.rampcollisionsz[o]+32)
}
else
if rampcollisionsrot[o]=180
{
p3dc_add_floor(obj_camera.rampcollisionsx[o]+128,o
bj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32)
p3dc_add_floor(obj_camera.rampcollisionsx[o]+128,o
bj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o])
p3dc_add_wall(obj_camera.rampcollisionsx[o],obj_ca
mera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o],ob
j_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]+128,obj_camera.rampc
ollisionsy[o]-32,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o],obj_camera.rampcolli
sionsy[o]-32,obj_camera.rampcollisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o],ob
j_camera.rampcollisionsy[o]+32,obj_camera.rampcolli
sionsz[o],
obj_camera.rampcollisionsx[o]+128,obj_camera.rampc
ollisionsy[o]+32,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o],obj_camera.rampcolli
sionsy[o]+32,obj_camera.rampcollisionsz[o]+32)
}
else
{
p3dc_add_floor(obj_camera.rampcollisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32)
p3dc_add_floor(obj_camera.rampcollisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o])
p3dc_add_wall(obj_camera.rampcollisionsx[o],obj_ca
mera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o],ob
j_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],
obj_camera.rampcollisionsx[o],obj_camera.rampcolli
sionsy[o]-32,obj_camera.rampcollisionsz[o]+32)
p3dc_add_triangle(obj_camera.rampcollisionsx[o],ob
j_camera.rampcollisionsy[o]+32,obj_camera.rampcolli
sionsz[o],
obj_camera.rampcollisionsx[o]-128,obj_camera.rampcollisionsy[o]+32,obj_camera.ra
mpcollisionsz[o],
obj_camera.rampcollisionsx[o],obj_camera.rampcolli
sionsy[o]+32,obj_camera.rampcollisionsz[o]+32)
}
}
p3dc_end_model();
if global.shadows_and_other_effects=1
{
//When this is turned on, Ultimate 3D will enable it's special effects while GM Newton will add realistic physics.
//This will boost preformance and boost popularity of the game dearly.
//First make model...
d3d_model_destroy(global.level_model)
global.level_model=d3d_model_create()
for (o=0; o<obj_camera.fct; o+=1)
{
d3d_model_block(global.level_model,obj_camera.floo
rcollisionsx[o]-32,obj_camera.floorcollisionsy[o]-32,obj_camera.floorcollisionsz[o]-1,obj_camera.floorcollisionsx[o]+32,obj_camera.flo
orcollisionsy[o]+32,obj_camera.floorcollisionsz[o],
1,1)
}
for (o=0; o<obj_camera.bct; o+=1)
{
if blockcollisionsrot[o]=0 or blockcollisionsrot[o]=180
{
d3d_model_wall(global.level_model,obj_camera.block
collisionsx[o]-32,obj_camera.blockcollisionsy[o],obj_camera.block
collisionsz[o],obj_camera.blockcollisionsx[o]+32,ob
j_camera.blockcollisionsy[o],obj_camera.blockcollis
ionsz[o]+64,1,1)
}
else
if blockcollisionsrot[o]=90 or blockcollisionsrot[o]=270
{
d3d_model_wall(global.level_model,obj_camera.block
collisionsx[o],obj_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o],obj_camera.blockcollisionsy[o]+32,ob
j_camera.blockcollisionsz[o]+64,1,1)
}
else
if blockcollisionsrot[o]=45 or blockcollisionsrot[o]=225
{
d3d_model_wall(global.level_model,obj_camera.block
collisionsx[o]-32,obj_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o]+32,obj_camera.blockcollisionsy[o]+32
,obj_camera.blockcollisionsz[o]+64,1,1)
}
else
if blockcollisionsrot[o]=135 or blockcollisionsrot[o]=315
{
d3d_model_wall(global.level_model,obj_camera.block
collisionsx[o]+32,obj_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o]-32,obj_camera.blockcollisionsy[o]+32,obj_camera.bl
ockcollisionsz[o]+64,1,1)
}
else
{
d3d_model_block(global.level_model,obj_camera.bloc
kcollisionsx[o]-32,obj_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o]+32,obj_camera.blockcollisionsy[o]+32
,obj_camera.blockcollisionsz[o]+64,1,1)
}
}
for (o=0; o<obj_camera.hfct; o+=1)
{
if hfloorcollisionsrot[o]=0
{
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]+32,obj_camera.hfloorcollisionsy[o
]-32,obj_camera.hfloorcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]+32,obj_camera.hfloorcollisionsy[o
]+32,obj_camera.hfloorcollisionsz[o])
d3d_model_primitive_end(global.level_model)
//d3d_vertex_normal_texture(x-32,y-32,z,x-32,y-32,z,0,0)
//d3d_vertex_normal_texture(x+32,y-32,z,x+32,y-32,z,0,1)
//d3d_vertex_normal_texture(x+32,y+32,z,x+32,y+32,z,
1,1)
}
else
if hfloorcollisionsrot[o]=90
{
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]+32,obj_camera.h
floorcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]+32,obj_camera.hfloorcollisionsy[o
]-32,obj_camera.hfloorcollisionsz[o])
d3d_model_primitive_end(global.level_model)
//d3d_vertex_normal_texture(x-32,y-32,z,x-32,y-32,z,0,0)
//d3d_vertex_normal_texture(x-32,y+32,z,x-32,y+32,z,1,0)
//d3d_vertex_normal_texture(x+32,y-32,z,x+32,y-32,z,0,1)
}
else
if hfloorcollisionsrot[o]=180
{
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]-32,obj_camera.hfloorcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]+32,obj_camera.h
floorcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]+32,obj_camera.hfloorcollisionsy[o
]+32,obj_camera.hfloorcollisionsz[o])
d3d_model_primitive_end(global.level_model)
//d3d_vertex_normal_texture(x-32,y-32,z,x-32,y-32,z,0,0)
//d3d_vertex_normal_texture(x-32,y+32,z,x-32,y+32,z,1,0)
//d3d_vertex_normal_texture(x+32,y+32,z,x+32,y+32,z,
1,1)
}
else
if hfloorcollisionsrot[o]=270
{
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]-32,obj_camera.hfloorcollisionsy[o]+32,obj_camera.h
floorcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]+32,obj_camera.hfloorcollisionsy[o
]-32,obj_camera.hfloorcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.hfl
oorcollisionsx[o]+32,obj_camera.hfloorcollisionsy[o
]+32,obj_camera.hfloorcollisionsz[o])
d3d_model_primitive_end(global.level_model)
//d3d_vertex_normal_texture(x-32,y+32,z,x-32,y+32,z,1,0)
//d3d_vertex_normal_texture(x+32,y-32,z,x+32,y-32,z,0,1)
//d3d_vertex_normal_texture(x+32,y+32,z,x+32,y+32,z,
1,1)
}
else
{
d3d_model_block(global.level_model,obj_camera.bloc
kcollisionsx[o]-32,obj_camera.blockcollisionsy[o]-32,obj_camera.blockcollisionsz[o],obj_camera.block
collisionsx[o]+32,obj_camera.blockcollisionsy[o]+32
,obj_camera.blockcollisionsz[o]+64,1,1)
}
}
for (o=0; o<obj_camera.rct; o+=1)
{
if rampcollisionsrot[o]=0
{
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32,1,1)
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o],1,1)
d3d_model_wall(global.level_model,obj_camera.rampc
ollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32,1,1)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]+32,ob
j_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-128,obj_camera.rampcollisionsy[o]+32,obj_camera.ra
mpcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]+32,ob
j_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
}
else
if rampcollisionsrot[o]=90
{
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o]+128,obj_camera.ra
mpcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o],ob
j_camera.rampcollisionsz[o]+32)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o]+128,obj_camera.ra
mpcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o]+12
8,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o],ob
j_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]-32,obj_camera.rampcollisionsy[o]+128,obj_camera.ra
mpcollisionsz[o],obj_camera.rampcollisionsx[o],obj_
camera.rampcollisionsy[o]+32,obj_camera.rampcollisi
onsz[o],1,1)
d3d_model_wall(global.level_model,obj_camera.rampc
ollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o],obj_camera.rampcollisionsx[o]+32,obj_c
amera.rampcollisionsy[o],obj_camera.rampcollisionsz
[o]+32,1,1)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o]+128,obj_camera.ra
mpcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o],ob
j_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o]+12
8,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o],ob
j_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
}
else
if rampcollisionsrot[o]=270
{
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o],ob
j_camera.rampcollisionsz[o]+32)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o],ob
j_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]-32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o],obj_camera.rampc
ollisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_
camera.rampcollisionsz[o],1,1)
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o],obj_camera.rampcollisionsx[o]+32,obj_c
amera.rampcollisionsy[o],obj_camera.rampcollisionsz
[o]+32,1,1)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-32,obj_camera.rampcollisionsy[o],obj_camera.rampco
llisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o],ob
j_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o]-128,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+32,obj_camera.rampcollisionsy[o],ob
j_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
}
else
if rampcollisionsrot[o]=180
{
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]+128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32,1,1)
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]+128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o],1,1)
d3d_model_wall(global.level_model,obj_camera.rampc
ollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32,1,1)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]+32,ob
j_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]+128,obj_camera.rampcollisionsy[o]+3
2,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]+32,ob
j_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
}
else
{
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32,1,1)
d3d_model_floor(global.level_model,obj_camera.ramp
collisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o],1,1)
d3d_model_wall(global.level_model,obj_camera.rampc
ollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o],obj_camera.rampco
llisionsx[o],obj_camera.rampcollisionsy[o]+32,obj_c
amera.rampcollisionsz[o]+32,1,1)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-128,obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]-32,obj_camera.rampcollisionsz[o]+32)
d3d_model_primitive_begin(global.level_model,pr_tr
ianglefan)
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]+32,ob
j_camera.rampcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o]-128,obj_camera.rampcollisionsy[o]+32,obj_camera.ra
mpcollisionsz[o])
d3d_model_vertex(global.level_model,obj_camera.ram
pcollisionsx[o],obj_camera.rampcollisionsy[o]+32,ob
j_camera.rampcollisionsz[o]+32)
d3d_model_primitive_end(global.level_model)
}
}
mapmodel=string_copy(mappath,0,string_length(mappa
th)-4)
d3d_model_save(global.level_model,"models/level_models/"+string(mapmodel)+".d3d")
d3d_model_destroy(global.level_model)
//Okay, so you're wondering why this saves a model.
//Well it's simple. During Debug sessions, I must also save the map as a model for backup purposes.
//This way, if the P3DC stops working... I can just tell it to open the model instead of all of the wall and floors.
//A faster possibility, but I wish to go slow.
}
else
{
}
alarm[6]=2
[/codebox]
^ This extremely long piece of code makes all of the walls, floors, ramps, and other triangles into one big model. That explains how this happened with unnecessary triangles.