def PlaceItem(*qwp_extra): qc.self.mdl = qc.self.model # so it can be restored on respawn qc.self.flags = defs.FL_ITEM # make extra wide qc.self.solid = defs.SOLID_TRIGGER qc.self.movetype = defs.MOVETYPE_TOSS qc.self.velocity = Vector(0, 0, 0) qc.self.origin %= Vector(None, None, qc.self.origin.z + 6) oldz = qc.self.origin.z if not qc.droptofloor(): engine.dprint('Bonus item fell out of level at ') engine.dprint(str(qc.self.origin)) engine.dprint('\012') qc.self.remove() return
def misc_explobox2(*qwp_extra): qc.self.solid = defs.SOLID_BBOX qc.self.movetype = defs.MOVETYPE_NONE engine.precache_model('maps/b_exbox2.bsp') qc.self.setmodel('maps/b_exbox2.bsp') qc.setsize(qc.self, Vector(0, 0, 0), Vector(32, 32, 32)) engine.precache_sound('weapons/r_exp3.wav') qc.self.health = 20 qc.self.th_die = barrel_explode qc.self.takedamage = defs.DAMAGE_AIM qc.self.origin %= Vector(None, None, qc.self.origin.z + 2) oldz = qc.self.origin.z qc.droptofloor() if oldz - qc.self.origin.z > 250: engine.dprint('item fell out of level at ') engine.dprint(str(qc.self.origin)) engine.dprint('\012') qc.self.remove()
def place_flag(*qwp_extra): qc.self.mdl = qc.self.model # so it can be restored on respawn qc.self.flags = defs.FL_ITEM # make extra wide qc.self.solid = defs.SOLID_TRIGGER qc.self.movetype = defs.MOVETYPE_TOSS qc.self.velocity = Vector(0, 0, 0) qc.self.origin %= Vector(None, None, qc.self.origin.z + 6) qc.self.think = TeamCaptureFlagThink qc.self.touch = TeamCaptureFlagTouch qc.self.nextthink = qc.time + 0.1 qc.self.cnt = FLAG_AT_BASE qc.self.mangle = qc.self.angles qc.self.effects |= defs.EF_DIMLIGHT if not qc.droptofloor(): engine.dprint("Flag fell out of level at ") engine.dprint(str(qc.self.origin)) engine.dprint("\012") qc.self.remove() return qc.self.oldorigin = qc.self.origin # save for flag return
def place_flag(*qwp_extra): qc.self.mdl = qc.self.model # so it can be restored on respawn qc.self.flags = defs.FL_ITEM # make extra wide qc.self.solid = defs.SOLID_TRIGGER qc.self.movetype = defs.MOVETYPE_TOSS qc.self.velocity = Vector(0, 0, 0) qc.self.origin %= Vector(None, None, qc.self.origin.z + 6) qc.self.think = TeamCaptureFlagThink qc.self.touch = TeamCaptureFlagTouch qc.self.nextthink = qc.time + 0.1 qc.self.cnt = FLAG_AT_BASE qc.self.mangle = qc.self.angles qc.self.effects |= defs.EF_DIMLIGHT if not qc.droptofloor(): engine.dprint('Flag fell out of level at ') engine.dprint(str(qc.self.origin)) engine.dprint('\012') qc.self.remove() return qc.self.oldorigin = qc.self.origin # save for flag return
def noclass(*qwp_extra): engine.dprint('noclass spawned at') engine.dprint(str(qc.self.origin)) engine.dprint('\012') qc.self.remove()
def main(*qwp_extra): engine.dprint('main function\012') # these are just commands the the prog compiler to copy these files qc.precache_file('progs.dat') qc.precache_file('gfx.wad') qc.precache_file('quake.rc') qc.precache_file('default.cfg') qc.precache_file('end1.bin') qc.precache_file('end2.bin') qc.precache_file('demo1.dem') qc.precache_file('demo2.dem') qc.precache_file('demo3.dem') # # these are all of the lumps from the cached.ls files # qc.precache_file('gfx/palette.lmp') qc.precache_file('gfx/colormap.lmp') qc.precache_file('gfx/pop.lmp') qc.precache_file('gfx/complete.lmp') qc.precache_file('gfx/inter.lmp') qc.precache_file('gfx/ranking.lmp') qc.precache_file('gfx/vidmodes.lmp') qc.precache_file('gfx/finale.lmp') qc.precache_file('gfx/conback.lmp') qc.precache_file('gfx/qplaque.lmp') qc.precache_file('gfx/menudot1.lmp') qc.precache_file('gfx/menudot2.lmp') qc.precache_file('gfx/menudot3.lmp') qc.precache_file('gfx/menudot4.lmp') qc.precache_file('gfx/menudot5.lmp') qc.precache_file('gfx/menudot6.lmp') qc.precache_file('gfx/menuplyr.lmp') qc.precache_file('gfx/bigbox.lmp') qc.precache_file('gfx/dim_modm.lmp') qc.precache_file('gfx/dim_drct.lmp') qc.precache_file('gfx/dim_ipx.lmp') qc.precache_file('gfx/dim_tcp.lmp') qc.precache_file('gfx/dim_mult.lmp') qc.precache_file('gfx/mainmenu.lmp') qc.precache_file('gfx/box_tl.lmp') qc.precache_file('gfx/box_tm.lmp') qc.precache_file('gfx/box_tr.lmp') qc.precache_file('gfx/box_ml.lmp') qc.precache_file('gfx/box_mm.lmp') qc.precache_file('gfx/box_mm2.lmp') qc.precache_file('gfx/box_mr.lmp') qc.precache_file('gfx/box_bl.lmp') qc.precache_file('gfx/box_bm.lmp') qc.precache_file('gfx/box_br.lmp') qc.precache_file('gfx/sp_menu.lmp') qc.precache_file('gfx/ttl_sgl.lmp') qc.precache_file('gfx/ttl_main.lmp') qc.precache_file('gfx/ttl_cstm.lmp') qc.precache_file('gfx/mp_menu.lmp') qc.precache_file('gfx/netmen1.lmp') qc.precache_file('gfx/netmen2.lmp') qc.precache_file('gfx/netmen3.lmp') qc.precache_file('gfx/netmen4.lmp') qc.precache_file('gfx/netmen5.lmp') qc.precache_file('gfx/sell.lmp') qc.precache_file('gfx/help0.lmp') qc.precache_file('gfx/help1.lmp') qc.precache_file('gfx/help2.lmp') qc.precache_file('gfx/help3.lmp') qc.precache_file('gfx/help4.lmp') qc.precache_file('gfx/help5.lmp') qc.precache_file('gfx/pause.lmp') qc.precache_file('gfx/loading.lmp') qc.precache_file('gfx/p_option.lmp') qc.precache_file('gfx/p_load.lmp') qc.precache_file('gfx/p_save.lmp') qc.precache_file('gfx/p_multi.lmp') # sounds loaded by C code engine.precache_sound('misc/menu1.wav') engine.precache_sound('misc/menu2.wav') engine.precache_sound('misc/menu3.wav') engine.precache_sound('ambience/water1.wav') engine.precache_sound('ambience/wind2.wav') # shareware qc.precache_file('maps/start.bsp') qc.precache_file('maps/e1m1.bsp') qc.precache_file('maps/e1m2.bsp') qc.precache_file('maps/e1m3.bsp') qc.precache_file('maps/e1m4.bsp') qc.precache_file('maps/e1m5.bsp') qc.precache_file('maps/e1m6.bsp') qc.precache_file('maps/e1m7.bsp') qc.precache_file('maps/e1m8.bsp') # registered qc.precache_file('gfx/pop.lmp') qc.precache_file('maps/e2m1.bsp') qc.precache_file('maps/e2m2.bsp') qc.precache_file('maps/e2m3.bsp') qc.precache_file('maps/e2m4.bsp') qc.precache_file('maps/e2m5.bsp') qc.precache_file('maps/e2m6.bsp') qc.precache_file('maps/e2m7.bsp') qc.precache_file('maps/e3m1.bsp') qc.precache_file('maps/e3m2.bsp') qc.precache_file('maps/e3m3.bsp') qc.precache_file('maps/e3m4.bsp') qc.precache_file('maps/e3m5.bsp') qc.precache_file('maps/e3m6.bsp') qc.precache_file('maps/e3m7.bsp') qc.precache_file('maps/e4m1.bsp') qc.precache_file('maps/e4m2.bsp') qc.precache_file('maps/e4m3.bsp') qc.precache_file('maps/e4m4.bsp') qc.precache_file('maps/e4m5.bsp') qc.precache_file('maps/e4m6.bsp') qc.precache_file('maps/e4m7.bsp') qc.precache_file('maps/e4m8.bsp') qc.precache_file('maps/end.bsp') qc.precache_file('maps/dm1.bsp') qc.precache_file('maps/dm2.bsp') qc.precache_file('maps/dm3.bsp') qc.precache_file('maps/dm4.bsp') qc.precache_file('maps/dm5.bsp') qc.precache_file('maps/dm6.bsp')
def func_door(*qwp_extra): if qc.world.worldtype == 0: engine.precache_sound('doors/medtry.wav') engine.precache_sound('doors/meduse.wav') qc.self.noise3 = 'doors/medtry.wav' qc.self.noise4 = 'doors/meduse.wav' elif qc.world.worldtype == 1: engine.precache_sound('doors/runetry.wav') engine.precache_sound('doors/runeuse.wav') qc.self.noise3 = 'doors/runetry.wav' qc.self.noise4 = 'doors/runeuse.wav' elif qc.world.worldtype == 2: engine.precache_sound('doors/basetry.wav') engine.precache_sound('doors/baseuse.wav') qc.self.noise3 = 'doors/basetry.wav' qc.self.noise4 = 'doors/baseuse.wav' else: engine.dprint('no worldtype set!\012') if qc.self.sounds == 0: engine.precache_sound('misc/null.wav') engine.precache_sound('misc/null.wav') qc.self.noise1 = 'misc/null.wav' qc.self.noise2 = 'misc/null.wav' if qc.self.sounds == 1: engine.precache_sound('doors/drclos4.wav') engine.precache_sound('doors/doormv1.wav') qc.self.noise1 = 'doors/drclos4.wav' qc.self.noise2 = 'doors/doormv1.wav' if qc.self.sounds == 2: engine.precache_sound('doors/hydro1.wav') engine.precache_sound('doors/hydro2.wav') qc.self.noise2 = 'doors/hydro1.wav' qc.self.noise1 = 'doors/hydro2.wav' if qc.self.sounds == 3: engine.precache_sound('doors/stndr1.wav') engine.precache_sound('doors/stndr2.wav') qc.self.noise2 = 'doors/stndr1.wav' qc.self.noise1 = 'doors/stndr2.wav' if qc.self.sounds == 4: engine.precache_sound('doors/ddoor1.wav') engine.precache_sound('doors/ddoor2.wav') qc.self.noise1 = 'doors/ddoor2.wav' qc.self.noise2 = 'doors/ddoor1.wav' subs.SetMovedir() qc.self.max_health = qc.self.health qc.self.solid = defs.SOLID_BSP qc.self.movetype = defs.MOVETYPE_PUSH qc.setorigin(qc.self, qc.self.origin) qc.self.setmodel(qc.self.model) qc.self.classname = 'door' qc.self.blocked = door_blocked qc.self.use = door_use if qc.self.spawnflags & DOOR_SILVER_KEY: qc.self.items = defs.IT_KEY1 if qc.self.spawnflags & DOOR_GOLD_KEY: qc.self.items = defs.IT_KEY2 if not qc.self.speed: qc.self.speed = 100 if not qc.self.wait: qc.self.wait = 3 if not qc.self.lip: qc.self.lip = 8 if not qc.self.dmg: qc.self.dmg = 2 qc.self.pos1 = qc.self.origin qc.self.pos2 = qc.self.pos1 + qc.self.movedir * (math.fabs(qc.self.movedir * qc.self.size) - qc.self.lip) # DOOR_START_OPEN is to allow an entity to be lighted in the closed position # but spawn in the open position if qc.self.spawnflags & DOOR_START_OPEN: qc.setorigin(qc.self, qc.self.pos2) qc.self.pos2 = qc.self.pos1 qc.self.pos1 = qc.self.origin qc.self.state = defs.STATE_BOTTOM if qc.self.health: qc.self.takedamage = defs.DAMAGE_YES qc.self.th_die = door_killed if qc.self.items: qc.self.wait = -1 qc.self.touch = door_touch # LinkDoors can't be done until all of the doors have been spawned, so # the sizes can be detected properly. qc.self.think = LinkDoors qc.self.nextthink = qc.self.ltime + 0.1
def func_door(*qwp_extra): if qc.world.worldtype == 0: engine.precache_sound('doors/medtry.wav') engine.precache_sound('doors/meduse.wav') qc.self.noise3 = 'doors/medtry.wav' qc.self.noise4 = 'doors/meduse.wav' elif qc.world.worldtype == 1: engine.precache_sound('doors/runetry.wav') engine.precache_sound('doors/runeuse.wav') qc.self.noise3 = 'doors/runetry.wav' qc.self.noise4 = 'doors/runeuse.wav' elif qc.world.worldtype == 2: engine.precache_sound('doors/basetry.wav') engine.precache_sound('doors/baseuse.wav') qc.self.noise3 = 'doors/basetry.wav' qc.self.noise4 = 'doors/baseuse.wav' else: engine.dprint('no worldtype set!\012') if qc.self.sounds == 0: engine.precache_sound('misc/null.wav') engine.precache_sound('misc/null.wav') qc.self.noise1 = 'misc/null.wav' qc.self.noise2 = 'misc/null.wav' if qc.self.sounds == 1: engine.precache_sound('doors/drclos4.wav') engine.precache_sound('doors/doormv1.wav') qc.self.noise1 = 'doors/drclos4.wav' qc.self.noise2 = 'doors/doormv1.wav' if qc.self.sounds == 2: engine.precache_sound('doors/hydro1.wav') engine.precache_sound('doors/hydro2.wav') qc.self.noise2 = 'doors/hydro1.wav' qc.self.noise1 = 'doors/hydro2.wav' if qc.self.sounds == 3: engine.precache_sound('doors/stndr1.wav') engine.precache_sound('doors/stndr2.wav') qc.self.noise2 = 'doors/stndr1.wav' qc.self.noise1 = 'doors/stndr2.wav' if qc.self.sounds == 4: engine.precache_sound('doors/ddoor1.wav') engine.precache_sound('doors/ddoor2.wav') qc.self.noise1 = 'doors/ddoor2.wav' qc.self.noise2 = 'doors/ddoor1.wav' subs.SetMovedir() qc.self.max_health = qc.self.health qc.self.solid = defs.SOLID_BSP qc.self.movetype = defs.MOVETYPE_PUSH qc.setorigin(qc.self, qc.self.origin) qc.self.setmodel(qc.self.model) qc.self.classname = 'door' qc.self.blocked = door_blocked qc.self.use = door_use if qc.self.spawnflags & DOOR_SILVER_KEY: qc.self.items = defs.IT_KEY1 if qc.self.spawnflags & DOOR_GOLD_KEY: qc.self.items = defs.IT_KEY2 if not qc.self.speed: qc.self.speed = 100 if not qc.self.wait: qc.self.wait = 3 if not qc.self.lip: qc.self.lip = 8 if not qc.self.dmg: qc.self.dmg = 2 qc.self.pos1 = qc.self.origin qc.self.pos2 = qc.self.pos1 + qc.self.movedir * ( math.fabs(qc.self.movedir * qc.self.size) - qc.self.lip) # DOOR_START_OPEN is to allow an entity to be lighted in the closed position # but spawn in the open position if qc.self.spawnflags & DOOR_START_OPEN: qc.setorigin(qc.self, qc.self.pos2) qc.self.pos2 = qc.self.pos1 qc.self.pos1 = qc.self.origin qc.self.state = defs.STATE_BOTTOM if qc.self.health: qc.self.takedamage = defs.DAMAGE_YES qc.self.th_die = door_killed if qc.self.items: qc.self.wait = -1 qc.self.touch = door_touch # LinkDoors can't be done until all of the doors have been spawned, so # the sizes can be detected properly. qc.self.think = LinkDoors qc.self.nextthink = qc.self.ltime + 0.1