Merge branch 'master' into terencehill/infomessages_panel_update
authorterencehill <piuntn@gmail.com>
Thu, 23 Jun 2016 16:58:13 +0000 (18:58 +0200)
committerterencehill <piuntn@gmail.com>
Thu, 23 Jun 2016 16:58:13 +0000 (18:58 +0200)
483 files changed:
CMakeLists.txt
_hud_common.cfg
cmake/qcc.sh
gfx/hud/default/nade_entrap.tga [new file with mode: 0644]
gfx/hud/luma/nade_entrap.tga [new file with mode: 0644]
minigames/bulldozer/storage_level10.txt [new file with mode: 0644]
minigames/bulldozer/storage_level11.txt [new file with mode: 0644]
minigames/bulldozer/storage_level12.txt [new file with mode: 0644]
minigames/bulldozer/storage_level13.txt [new file with mode: 0644]
minigames/bulldozer/storage_level14.txt [new file with mode: 0644]
minigames/bulldozer/storage_level15.txt [new file with mode: 0644]
minigames/bulldozer/storage_level9.txt
models/ctf/shield.md3_0.skin [new file with mode: 0644]
models/ctf/shield.md3_1.skin [new file with mode: 0644]
models/player/erebus.iqm_1.skin [new file with mode: 0644]
models/player/erebus_lod1.iqm_1.skin [new file with mode: 0644]
models/player/erebus_lod2.iqm_1.skin [new file with mode: 0644]
models/player/gak.iqm_0.skin [new file with mode: 0644]
models/player/gak.iqm_1.skin [new file with mode: 0644]
models/player/gak_lod1.iqm_0.skin [new file with mode: 0644]
models/player/gak_lod1.iqm_1.skin [new file with mode: 0644]
models/player/gak_lod2.iqm_0.skin [new file with mode: 0644]
models/player/gak_lod2.iqm_1.skin [new file with mode: 0644]
models/player/gakarmored.iqm_0.skin [new file with mode: 0644]
models/player/gakarmored.iqm_1.skin [new file with mode: 0644]
models/player/gakarmored_lod1.iqm_0.skin [new file with mode: 0644]
models/player/gakarmored_lod1.iqm_1.skin [new file with mode: 0644]
models/player/gakarmored_lod2.iqm_0.skin [new file with mode: 0644]
models/player/gakarmored_lod2.iqm_1.skin [new file with mode: 0644]
models/player/gakmasked.iqm_0.skin [new file with mode: 0644]
models/player/gakmasked.iqm_1.skin [new file with mode: 0644]
models/player/gakmasked_lod1.iqm_0.skin [new file with mode: 0644]
models/player/gakmasked_lod1.iqm_1.skin [new file with mode: 0644]
models/player/gakmasked_lod2.iqm_0.skin [new file with mode: 0644]
models/player/gakmasked_lod2.iqm_1.skin [new file with mode: 0644]
models/player/ignis.iqm_0.skin [new file with mode: 0644]
models/player/ignis.iqm_1.skin [new file with mode: 0644]
models/player/ignis_lod1.iqm_0.skin [new file with mode: 0644]
models/player/ignis_lod1.iqm_1.skin [new file with mode: 0644]
models/player/ignis_lod2.iqm_0.skin [new file with mode: 0644]
models/player/ignis_lod2.iqm_1.skin [new file with mode: 0644]
models/player/ignishalfmasked.iqm_0.skin [new file with mode: 0644]
models/player/ignishalfmasked.iqm_1.skin [new file with mode: 0644]
models/player/ignishalfmasked_lod1.iqm_0.skin [new file with mode: 0644]
models/player/ignishalfmasked_lod1.iqm_1.skin [new file with mode: 0644]
models/player/ignishalfmasked_lod2.iqm_0.skin [new file with mode: 0644]
models/player/ignishalfmasked_lod2.iqm_1.skin [new file with mode: 0644]
models/player/ignismasked.iqm_0.skin [new file with mode: 0644]
models/player/ignismasked.iqm_1.skin [new file with mode: 0644]
models/player/ignismasked_lod1.iqm_0.skin [new file with mode: 0644]
models/player/ignismasked_lod1.iqm_1.skin [new file with mode: 0644]
models/player/ignismasked_lod2.iqm_0.skin [new file with mode: 0644]
models/player/ignismasked_lod2.iqm_1.skin [new file with mode: 0644]
models/player/nyx.iqm_0.skin [new file with mode: 0644]
models/player/nyx.iqm_1.skin [new file with mode: 0644]
models/player/nyx_lod1.iqm_0.skin [new file with mode: 0644]
models/player/nyx_lod1.iqm_1.skin [new file with mode: 0644]
models/player/nyx_lod2.iqm_0.skin [new file with mode: 0644]
models/player/nyx_lod2.iqm_1.skin [new file with mode: 0644]
models/player/pyria.iqm_0.skin [new file with mode: 0644]
models/player/pyria.iqm_1.skin [new file with mode: 0644]
models/player/pyria_lod1.iqm_0.skin [new file with mode: 0644]
models/player/pyria_lod1.iqm_1.skin [new file with mode: 0644]
models/player/pyria_lod2.iqm_0.skin [new file with mode: 0644]
models/player/pyria_lod2.iqm_1.skin [new file with mode: 0644]
models/player/seraphina.iqm_0.skin [new file with mode: 0644]
models/player/seraphina.iqm_1.skin [new file with mode: 0644]
models/player/seraphina_lod1.iqm_0.skin [new file with mode: 0644]
models/player/seraphina_lod1.iqm_1.skin [new file with mode: 0644]
models/player/seraphina_lod2.iqm_0.skin [new file with mode: 0644]
models/player/seraphina_lod2.iqm_1.skin [new file with mode: 0644]
models/player/seraphinamasked.iqm_0.skin [new file with mode: 0644]
models/player/seraphinamasked.iqm_1.skin [new file with mode: 0644]
models/player/seraphinamasked_lod1.iqm_0.skin [new file with mode: 0644]
models/player/seraphinamasked_lod1.iqm_1.skin [new file with mode: 0644]
models/player/seraphinamasked_lod2.iqm_0.skin [new file with mode: 0644]
models/player/seraphinamasked_lod2.iqm_1.skin [new file with mode: 0644]
models/player/umbra.iqm_0.skin [new file with mode: 0644]
models/player/umbra.iqm_1.skin [new file with mode: 0644]
models/player/umbra_lod1.iqm_0.skin [new file with mode: 0644]
models/player/umbra_lod1.iqm_1.skin [new file with mode: 0644]
models/player/umbra_lod2.iqm_0.skin [new file with mode: 0644]
models/player/umbra_lod2.iqm_1.skin [new file with mode: 0644]
mutators.cfg
qcsrc/.editorconfig [new file with mode: 0644]
qcsrc/Makefile
qcsrc/client/announcer.qc
qcsrc/client/autocvars.qh
qcsrc/client/commands/cl_cmd.qc
qcsrc/client/csqcmodel_hooks.qc
qcsrc/client/hud/hud.qc
qcsrc/client/hud/hud_config.qc
qcsrc/client/hud/panel/modicons.qc
qcsrc/client/hud/panel/score.qc
qcsrc/client/main.qc
qcsrc/client/mapvoting.qc
qcsrc/client/miscfunctions.qc
qcsrc/client/mutators/events.qh
qcsrc/client/progs.inc
qcsrc/client/shownames.qc
qcsrc/client/view.qc
qcsrc/common/animdecide.qc
qcsrc/common/effects/all.qc
qcsrc/common/effects/qc/casings.qc
qcsrc/common/effects/qc/damageeffects.qc
qcsrc/common/effects/qc/gibs.qc
qcsrc/common/effects/qc/globalsound.qc
qcsrc/common/effects/qc/globalsound.qh
qcsrc/common/effects/qc/lightningarc.qc
qcsrc/common/effects/qc/rubble.qh
qcsrc/common/ent_cs.qc
qcsrc/common/gamemodes/gamemode/nexball/nexball.qc
qcsrc/common/gamemodes/gamemode/onslaught/cl_controlpoint.qc
qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc
qcsrc/common/gamemodes/gamemode/onslaught/sv_controlpoint.qc
qcsrc/common/gamemodes/gamemode/onslaught/sv_generator.qc
qcsrc/common/items/all.qc
qcsrc/common/mapinfo.qc
qcsrc/common/minigames/cl_minigames.qc
qcsrc/common/minigames/cl_minigames.qh
qcsrc/common/minigames/cl_minigames_hud.qc
qcsrc/common/minigames/minigame/bd.qc
qcsrc/common/minigames/minigame/c4.qc
qcsrc/common/minigames/minigame/nmm.qc
qcsrc/common/minigames/minigame/pong.qc
qcsrc/common/minigames/minigame/pp.qc
qcsrc/common/minigames/minigame/ps.qc
qcsrc/common/minigames/minigame/snake.qc
qcsrc/common/minigames/minigame/ttt.qc
qcsrc/common/minigames/minigames.qc
qcsrc/common/minigames/sv_minigames.qc
qcsrc/common/minigames/sv_minigames.qh
qcsrc/common/models/all.inc
qcsrc/common/monsters/all.qc
qcsrc/common/monsters/monster.qh
qcsrc/common/monsters/monster/mage.qc
qcsrc/common/monsters/monster/shambler.qc
qcsrc/common/monsters/monster/spider.qc
qcsrc/common/monsters/monster/wyvern.qc
qcsrc/common/monsters/monster/zombie.qc
qcsrc/common/monsters/spawn.qc
qcsrc/common/monsters/sv_monsters.qc
qcsrc/common/mutators/base.qh
qcsrc/common/mutators/events.qh
qcsrc/common/mutators/mutator/bloodloss/bloodloss.qc
qcsrc/common/mutators/mutator/breakablehook/breakablehook.qc
qcsrc/common/mutators/mutator/buffs/buffs.qc
qcsrc/common/mutators/mutator/buffs/module.inc
qcsrc/common/mutators/mutator/bugrigs/bugrigs.qc
qcsrc/common/mutators/mutator/campcheck/campcheck.qc
qcsrc/common/mutators/mutator/cloaked/cloaked.qc
qcsrc/common/mutators/mutator/damagetext/damagetext.qc
qcsrc/common/mutators/mutator/dodging/dodging.qc
qcsrc/common/mutators/mutator/doublejump/doublejump.qc
qcsrc/common/mutators/mutator/hook/hook.qc
qcsrc/common/mutators/mutator/instagib/instagib.qc
qcsrc/common/mutators/mutator/invincibleproj/invincibleproj.qc
qcsrc/common/mutators/mutator/itemstime.qc
qcsrc/common/mutators/mutator/melee_only/melee_only.qc
qcsrc/common/mutators/mutator/midair/midair.qc
qcsrc/common/mutators/mutator/multijump/multijump.qc
qcsrc/common/mutators/mutator/nades/nades.inc
qcsrc/common/mutators/mutator/nades/nades.qc
qcsrc/common/mutators/mutator/nades/nades.qh
qcsrc/common/mutators/mutator/nades/net.qc
qcsrc/common/mutators/mutator/new_toys/new_toys.qc
qcsrc/common/mutators/mutator/nix/nix.qc
qcsrc/common/mutators/mutator/overkill/hmg.qc
qcsrc/common/mutators/mutator/overkill/overkill.qc
qcsrc/common/mutators/mutator/overkill/rpc.qc
qcsrc/common/mutators/mutator/physical_items/physical_items.qc
qcsrc/common/mutators/mutator/pinata/pinata.qc
qcsrc/common/mutators/mutator/random_gravity/random_gravity.qc
qcsrc/common/mutators/mutator/rocketflying/rocketflying.qc
qcsrc/common/mutators/mutator/rocketminsta/rocketminsta.qc
qcsrc/common/mutators/mutator/sandbox/sandbox.qc
qcsrc/common/mutators/mutator/spawn_near_teammate/spawn_near_teammate.qc
qcsrc/common/mutators/mutator/superspec/superspec.qc
qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc
qcsrc/common/mutators/mutator/vampire/vampire.qc
qcsrc/common/mutators/mutator/vampirehook/vampirehook.qc
qcsrc/common/mutators/mutator/waypoints/waypointsprites.qc
qcsrc/common/mutators/mutator/waypoints/waypointsprites.qh
qcsrc/common/mutators/mutator/weaponarena_random/weaponarena_random.qc
qcsrc/common/notifications/all.qc
qcsrc/common/notifications/all.qh
qcsrc/common/physics/movelib.qc
qcsrc/common/physics/movelib.qh
qcsrc/common/physics/movetypes/follow.qc
qcsrc/common/physics/movetypes/movetypes.qc
qcsrc/common/physics/movetypes/movetypes.qh
qcsrc/common/physics/movetypes/push.qc
qcsrc/common/physics/movetypes/toss.qc
qcsrc/common/physics/player.qc
qcsrc/common/playerstats.qc
qcsrc/common/sounds/all.qc
qcsrc/common/stats.qh
qcsrc/common/t_items.qc
qcsrc/common/triggers/func/bobbing.qc
qcsrc/common/triggers/func/breakable.qc
qcsrc/common/triggers/func/button.qc
qcsrc/common/triggers/func/conveyor.qc
qcsrc/common/triggers/func/door.qc
qcsrc/common/triggers/func/door_rotating.qc
qcsrc/common/triggers/func/door_secret.qc
qcsrc/common/triggers/func/fourier.qc
qcsrc/common/triggers/func/ladder.qc
qcsrc/common/triggers/func/pendulum.qc
qcsrc/common/triggers/func/plat.qc
qcsrc/common/triggers/func/pointparticles.qc
qcsrc/common/triggers/func/rainsnow.qc
qcsrc/common/triggers/func/rotating.qc
qcsrc/common/triggers/func/train.qc
qcsrc/common/triggers/func/vectormamamam.qc
qcsrc/common/triggers/misc/follow.qc
qcsrc/common/triggers/misc/laser.qc
qcsrc/common/triggers/misc/teleport_dest.qc
qcsrc/common/triggers/platforms.qc
qcsrc/common/triggers/platforms.qh
qcsrc/common/triggers/subs.qc
qcsrc/common/triggers/target/music.qc
qcsrc/common/triggers/target/music.qh
qcsrc/common/triggers/target/spawn.qc
qcsrc/common/triggers/target/speaker.qc
qcsrc/common/triggers/target/voicescript.qc
qcsrc/common/triggers/teleporters.qc
qcsrc/common/triggers/trigger/disablerelay.qc
qcsrc/common/triggers/trigger/gamestart.qc
qcsrc/common/triggers/trigger/gravity.qc
qcsrc/common/triggers/trigger/heal.qc
qcsrc/common/triggers/trigger/hurt.qc
qcsrc/common/triggers/trigger/impulse.qc
qcsrc/common/triggers/trigger/jumppads.qc
qcsrc/common/triggers/trigger/keylock.qc
qcsrc/common/triggers/trigger/magicear.qc
qcsrc/common/triggers/trigger/multi.qc
qcsrc/common/triggers/trigger/relay_activators.qc
qcsrc/common/triggers/trigger/secret.qc
qcsrc/common/triggers/trigger/secret.qh
qcsrc/common/triggers/trigger/swamp.qc
qcsrc/common/triggers/trigger/teleport.qc
qcsrc/common/triggers/trigger/viewloc.qc
qcsrc/common/triggers/triggers.qc
qcsrc/common/triggers/triggers.qh
qcsrc/common/turrets/checkpoint.qc
qcsrc/common/turrets/cl_turrets.qc
qcsrc/common/turrets/config.qc
qcsrc/common/turrets/sv_turrets.qc
qcsrc/common/turrets/sv_turrets.qh
qcsrc/common/turrets/targettrigger.qc
qcsrc/common/turrets/turret.qh
qcsrc/common/turrets/turret/ewheel.qc
qcsrc/common/turrets/turret/ewheel_weapon.qc
qcsrc/common/turrets/turret/flac.qc
qcsrc/common/turrets/turret/flac_weapon.qc
qcsrc/common/turrets/turret/fusionreactor.qc
qcsrc/common/turrets/turret/hellion.qc
qcsrc/common/turrets/turret/hellion_weapon.qc
qcsrc/common/turrets/turret/hk.qc
qcsrc/common/turrets/turret/hk_weapon.qc
qcsrc/common/turrets/turret/machinegun.qc
qcsrc/common/turrets/turret/mlrs.qc
qcsrc/common/turrets/turret/mlrs_weapon.qc
qcsrc/common/turrets/turret/phaser.qc
qcsrc/common/turrets/turret/phaser_weapon.qc
qcsrc/common/turrets/turret/plasma.qc
qcsrc/common/turrets/turret/plasma_dual.qc
qcsrc/common/turrets/turret/plasma_weapon.qc
qcsrc/common/turrets/turret/tesla.qc
qcsrc/common/turrets/turret/tesla_weapon.qc
qcsrc/common/turrets/turret/walker.qc
qcsrc/common/turrets/util.qc
qcsrc/common/turrets/util.qh
qcsrc/common/util.qc
qcsrc/common/vehicles/cl_vehicles.qc
qcsrc/common/vehicles/sv_vehicles.qc
qcsrc/common/vehicles/sv_vehicles.qh
qcsrc/common/vehicles/vehicle.qh
qcsrc/common/vehicles/vehicle/bumblebee.qc
qcsrc/common/vehicles/vehicle/bumblebee.qh
qcsrc/common/vehicles/vehicle/bumblebee_weapons.qc
qcsrc/common/vehicles/vehicle/racer.qc
qcsrc/common/vehicles/vehicle/racer_weapon.qc
qcsrc/common/vehicles/vehicle/raptor.qc
qcsrc/common/vehicles/vehicle/raptor_weapons.qc
qcsrc/common/vehicles/vehicle/spiderbot.qc
qcsrc/common/vehicles/vehicle/spiderbot_weapons.qc
qcsrc/common/viewloc.qc
qcsrc/common/weapons/all.qc
qcsrc/common/weapons/all.qh
qcsrc/common/weapons/config.qc
qcsrc/common/weapons/weapon.qh
qcsrc/common/weapons/weapon/arc.qc
qcsrc/common/weapons/weapon/blaster.qc
qcsrc/common/weapons/weapon/crylink.qc
qcsrc/common/weapons/weapon/devastator.qc
qcsrc/common/weapons/weapon/electro.qc
qcsrc/common/weapons/weapon/fireball.qc
qcsrc/common/weapons/weapon/hagar.qc
qcsrc/common/weapons/weapon/hlac.qc
qcsrc/common/weapons/weapon/hook.qc
qcsrc/common/weapons/weapon/machinegun.qc
qcsrc/common/weapons/weapon/minelayer.qc
qcsrc/common/weapons/weapon/mortar.qc
qcsrc/common/weapons/weapon/porto.qc
qcsrc/common/weapons/weapon/rifle.qc
qcsrc/common/weapons/weapon/seeker.qc
qcsrc/common/weapons/weapon/shockwave.qc
qcsrc/common/weapons/weapon/shotgun.qc
qcsrc/common/weapons/weapon/tuba.qc
qcsrc/common/weapons/weapon/vaporizer.qc
qcsrc/common/weapons/weapon/vortex.qc
qcsrc/dpdefs/doc.md
qcsrc/dpdefs/post.qh [new file with mode: 0644]
qcsrc/dpdefs/pre.qh [new file with mode: 0644]
qcsrc/ecs/README.md [new file with mode: 0644]
qcsrc/ecs/_lib.inc [new file with mode: 0644]
qcsrc/ecs/_mod.inc [new file with mode: 0644]
qcsrc/ecs/_mod.qh [new file with mode: 0644]
qcsrc/ecs/components/_mod.inc [new file with mode: 0644]
qcsrc/ecs/components/_mod.qh [new file with mode: 0644]
qcsrc/ecs/components/input.qc [new file with mode: 0644]
qcsrc/ecs/components/input.qh [new file with mode: 0644]
qcsrc/ecs/components/physics.qc [new file with mode: 0644]
qcsrc/ecs/components/physics.qh [new file with mode: 0644]
qcsrc/ecs/events/_mod.inc [new file with mode: 0644]
qcsrc/ecs/events/_mod.qh [new file with mode: 0644]
qcsrc/ecs/main.qc [new file with mode: 0644]
qcsrc/ecs/main.qh [new file with mode: 0644]
qcsrc/ecs/systems/_mod.inc [new file with mode: 0644]
qcsrc/ecs/systems/_mod.qh [new file with mode: 0644]
qcsrc/ecs/systems/physics.qc [new file with mode: 0644]
qcsrc/ecs/systems/physics.qh [new file with mode: 0644]
qcsrc/lib/_all.inc
qcsrc/lib/csqcmodel/sv_model.qc
qcsrc/lib/defer.qh
qcsrc/lib/macro.qh
qcsrc/lib/misc.qh
qcsrc/lib/net.qh
qcsrc/lib/oo.qh
qcsrc/lib/self.qh
qcsrc/lib/sortlist.qc
qcsrc/lib/spawnfunc.qh
qcsrc/lib/stats.qh
qcsrc/lib/unsafe.qh
qcsrc/lib/vector.qh
qcsrc/lib/warpzone/client.qc
qcsrc/lib/warpzone/common.qc
qcsrc/lib/warpzone/server.qc
qcsrc/lib/warpzone/server.qh
qcsrc/menu/progs.inc
qcsrc/server/autocvars.qh
qcsrc/server/bot/aim.qc
qcsrc/server/bot/aim.qh
qcsrc/server/bot/bot.qc
qcsrc/server/bot/havocbot/havocbot.qc
qcsrc/server/bot/havocbot/roles.qc
qcsrc/server/bot/navigation.qc
qcsrc/server/bot/scripting.qc
qcsrc/server/bot/waypoints.qc
qcsrc/server/cheats.qc
qcsrc/server/cheats.qh
qcsrc/server/cl_client.qc
qcsrc/server/cl_client.qh
qcsrc/server/cl_impulse.qc
qcsrc/server/cl_player.qc
qcsrc/server/cl_player.qh
qcsrc/server/command/cmd.qc
qcsrc/server/command/cmd.qh
qcsrc/server/command/common.qc
qcsrc/server/command/getreplies.qc
qcsrc/server/command/radarmap.qc
qcsrc/server/command/sv_cmd.qc
qcsrc/server/command/vote.qc
qcsrc/server/defs.qh
qcsrc/server/g_damage.qc
qcsrc/server/g_hook.qc
qcsrc/server/g_lights.qc
qcsrc/server/g_models.qc
qcsrc/server/g_subs.qc
qcsrc/server/g_subs.qh
qcsrc/server/g_world.qc
qcsrc/server/g_world.qh
qcsrc/server/ipban.qc
qcsrc/server/item_key.qc
qcsrc/server/mapvoting.qc
qcsrc/server/mapvoting.qh
qcsrc/server/miscfunctions.qc
qcsrc/server/miscfunctions.qh
qcsrc/server/mutators/events.qh
qcsrc/server/mutators/mutator/gamemode_assault.qc
qcsrc/server/mutators/mutator/gamemode_ca.qc
qcsrc/server/mutators/mutator/gamemode_ctf.qc
qcsrc/server/mutators/mutator/gamemode_cts.qc
qcsrc/server/mutators/mutator/gamemode_domination.qc
qcsrc/server/mutators/mutator/gamemode_freezetag.qc
qcsrc/server/mutators/mutator/gamemode_invasion.qc
qcsrc/server/mutators/mutator/gamemode_keepaway.qc
qcsrc/server/mutators/mutator/gamemode_keyhunt.qc
qcsrc/server/mutators/mutator/gamemode_lms.qc
qcsrc/server/mutators/mutator/gamemode_race.qc
qcsrc/server/mutators/mutator/gamemode_tdm.qc
qcsrc/server/pathlib/debug.qc
qcsrc/server/pathlib/main.qc
qcsrc/server/pathlib/movenode.qc
qcsrc/server/pathlib/path_waypoint.qc
qcsrc/server/pathlib/utility.qc
qcsrc/server/playerdemo.qc
qcsrc/server/playerdemo.qh
qcsrc/server/portals.qc
qcsrc/server/progs.inc
qcsrc/server/race.qc
qcsrc/server/round_handler.qc
qcsrc/server/round_handler.qh
qcsrc/server/scores.qc
qcsrc/server/scores.qh
qcsrc/server/scores_rules.qc
qcsrc/server/spawnpoints.qc
qcsrc/server/steerlib.qc
qcsrc/server/sv_main.qc
qcsrc/server/sys-post.qh
qcsrc/server/sys-pre.qh
qcsrc/server/t_quake.qc
qcsrc/server/t_quake3.qc
qcsrc/server/teamplay.qc
qcsrc/server/teamplay.qh
qcsrc/server/weapons/csqcprojectile.qc
qcsrc/server/weapons/selection.qc
qcsrc/server/weapons/spawning.qc
qcsrc/server/weapons/throwing.qc
qcsrc/server/weapons/tracing.qc
qcsrc/server/weapons/tracing.qh
qcsrc/server/weapons/weaponstats.qc
qcsrc/server/weapons/weaponsystem.qc
qcsrc/server/weapons/weaponsystem.qh
qcsrc/tools/compilationunits.sh
qcsrc/tools/genmod.sh
qcsrc/tools/headerstyle.sh
qcsrc/tools/qcc.sh
scripts/nades.shader [new file with mode: 0644]
scripts/player_gak.shader
scripts/player_ignis.shader
scripts/player_nyx.shader
scripts/player_pyria.shader
scripts/player_umbra.shader
scripts/shaderlist.txt
textures/gakarmorfb.tga [new file with mode: 0644]
textures/gakarmorfb_gloss.tga [new file with mode: 0644]
textures/gakarmorfb_glow.tga [new file with mode: 0644]
textures/gakarmorfb_norm.tga [new file with mode: 0644]
textures/gakarmorfb_reflect.tga [new file with mode: 0644]
textures/gakarmorfb_shirt.tga [new file with mode: 0644]
textures/gakfullbright.tga [new file with mode: 0644]
textures/gakfullbright_gloss.tga [new file with mode: 0644]
textures/gakfullbright_glow.tga [new file with mode: 0644]
textures/gakfullbright_norm.tga [new file with mode: 0644]
textures/gakfullbright_reflect.tga [new file with mode: 0644]
textures/gakfullbright_shirt.tga [new file with mode: 0644]
textures/ignisfullbright.tga [new file with mode: 0644]
textures/ignisfullbright_gloss.tga [new file with mode: 0644]
textures/ignisfullbright_glow.tga [new file with mode: 0644]
textures/ignisfullbright_norm.tga [new file with mode: 0644]
textures/ignisfullbright_reflect.tga [new file with mode: 0644]
textures/ignisfullbright_shirt.tga [new file with mode: 0644]
textures/nade_orb.tga [new file with mode: 0644]
textures/nyxfullbright.tga [new file with mode: 0644]
textures/nyxfullbright_gloss.tga [new file with mode: 0644]
textures/nyxfullbright_glow.tga [new file with mode: 0644]
textures/nyxfullbright_norm.tga [new file with mode: 0644]
textures/nyxfullbright_reflect.tga [new file with mode: 0644]
textures/nyxfullbright_shirt.tga [new file with mode: 0644]
textures/pyriafullbright.tga [new file with mode: 0644]
textures/pyriafullbright_gloss.jpg [new file with mode: 0644]
textures/pyriafullbright_glow.tga [new file with mode: 0644]
textures/pyriafullbright_norm.tga [new file with mode: 0644]
textures/pyriafullbright_reflect.jpg [new file with mode: 0644]
textures/pyriafullbright_shirt.tga [new file with mode: 0644]
textures/umbrafullbright.tga [new file with mode: 0644]
textures/umbrafullbright_gloss.jpg [new file with mode: 0644]
textures/umbrafullbright_glow.tga [new file with mode: 0644]
textures/umbrafullbright_norm.tga [new file with mode: 0644]
textures/umbrafullbright_reflect.jpg [new file with mode: 0644]
textures/umbrafullbright_shirt.tga [new file with mode: 0644]

index c2b8564351a1b9ce23b56fa0b69a7135d2df527a..fdbce7d5ac19f8b20fd5990f9756af7773ea05ba 100644 (file)
@@ -4,6 +4,7 @@ project(xonotic-data LANGUAGES ASM)
 
 include_directories(qcsrc)
 
+add_definitions(-DXONOTIC=1)
 add_definitions(-DNDEBUG=1)
 
 find_package(Git REQUIRED)
index e1fde9b1d60e2997ffec4734ea687c956ffd2518..65046cafbbdc4f7028a798c5d13b9d6b74db7acf 100644 (file)
@@ -114,9 +114,9 @@ seta hud_dynamic_follow_scale 0.01 "HUD following scale"
 seta hud_dynamic_follow_scale_xyz "1 1 1" "HUD following scale for the x, y and z axis"
 
 seta hud_dynamic_shake 1 "shake the HUD when hurt"
-seta hud_dynamic_shake_damage_max 90 "damage value at which the HUD shake effect is maximum"
+seta hud_dynamic_shake_damage_max 130 "damage value at which the HUD shake effect is maximum"
 seta hud_dynamic_shake_damage_min 10 "damage value at which the HUD shake effect is minimum"
-seta hud_dynamic_shake_scale 0.4 "HUD shake scale"
+seta hud_dynamic_shake_scale 0.2 "HUD shake scale"
 
 seta hud_showbinds 1   "what to show in the HUD to indicate certain keys to press: 0 display commands, 1 bound keys, 2 both"
 seta hud_showbinds_limit 2     "maximum number of bound keys to show for a command. 0 for unlimited"
index 2e8ea7062576c9fda587f1f44dd4a892d25353f5..b7c77fd563a35a24ca2b4c1c1b5a4319861b5d52 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 CPP=${CPP:-cpp}
 QCC=${QCC:-$PWD/../../gmqcc/gmqcc${CMAKE_EXECUTABLE_SUFFIX}}
 case $1 in
diff --git a/gfx/hud/default/nade_entrap.tga b/gfx/hud/default/nade_entrap.tga
new file mode 100644 (file)
index 0000000..358dc1a
Binary files /dev/null and b/gfx/hud/default/nade_entrap.tga differ
diff --git a/gfx/hud/luma/nade_entrap.tga b/gfx/hud/luma/nade_entrap.tga
new file mode 100644 (file)
index 0000000..27287ad
Binary files /dev/null and b/gfx/hud/luma/nade_entrap.tga differ
diff --git a/minigames/bulldozer/storage_level10.txt b/minigames/bulldozer/storage_level10.txt
new file mode 100644 (file)
index 0000000..eb47650
--- /dev/null
@@ -0,0 +1,387 @@
+// bulldozer storage "level10" last updated 11-06-2016 14:57:48
+nextlevel = "level11"
+"e13" 4 "0 -1 0"
+"d13" 4 "0 -1 0"
+"c13" 4 "0 -1 0"
+"b13" 4 "0 -1 0"
+"a13" 4 "0 -1 0"
+"a12" 4 "0 -1 0"
+"c10" 10 "0 -1 0"
+"c12" 4 "0 -1 0"
+"e12" 4 "0 -1 0"
+"e14" 10 "0 -1 0"
+"g12" 4 "0 -1 0"
+"j14" 5 "0 -1 0"
+"k13" 2 "0 -1 0"
+"k12" 2 "0 -1 0"
+"l12" 2 "0 -1 0"
+"l13" 2 "0 -1 0"
+"k11" 5 "0 -1 0"
+"k14" 5 "0 -1 0"
+"o12" 4 "0 -1 0"
+"r8" 10 "0 -1 0"
+"q12" 4 "0 -1 0"
+"r12" 10 "0 -1 0"
+"s12" 4 "0 -1 0"
+"s10" 10 "0 -1 0"
+"t11" 4 "0 -1 0"
+"s11" 4 "0 -1 0"
+"r11" 4 "0 -1 0"
+"q11" 4 "0 -1 0"
+"p11" 4 "0 -1 0"
+"o11" 4 "0 -1 0"
+"k15" 5 "0 -1 0"
+"m11" 1 "0 -1 0"
+"j12" 3 "0 -1 0"
+"j11" 3 "0 -1 0"
+"j10" 3 "0 -1 0"
+"l14" 3 "0 -1 0"
+"k16" 5 "0 -1 0"
+"g11" 4 "0 -1 0"
+"f11" 4 "0 -1 0"
+"e11" 4 "0 -1 0"
+"d11" 4 "0 -1 0"
+"c11" 4 "0 -1 0"
+"b11" 4 "0 -1 0"
+"a11" 4 "0 -1 0"
+"a10" 4 "0 -1 0"
+"b10" 4 "0 -1 0"
+"e10" 10 "0 -1 0"
+"d10" 4 "0 -1 0"
+"d12" 10 "0 -1 0"
+"f10" 4 "0 -1 0"
+"g10" 4 "0 -1 0"
+"l16" 5 "0 -1 0"
+"t12" 10 "0 -1 0"
+"s14" 10 "0 -1 0"
+"r16" 10 "0 -1 0"
+"q14" 10 "0 -1 0"
+"p12" 10 "0 -1 0"
+"m16" 5 "0 -1 0"
+"o10" 4 "0 -1 0"
+"q10" 10 "0 -1 0"
+"p10" 4 "0 -1 0"
+"r10" 4 "0 -1 0"
+"f12" 10 "0 -1 0"
+"t10" 4 "0 -1 0"
+"t9" 4 "0 -1 0"
+"s9" 4 "0 -1 0"
+"r9" 4 "0 -1 0"
+"q9" 4 "0 -1 0"
+"p9" 4 "0 -1 0"
+"o9" 4 "0 -1 0"
+"n16" 5 "0 -1 0"
+"n15" 5 "0 -1 0"
+"n14" 5 "0 -1 0"
+"d16" 10 "0 -1 0"
+"c14" 10 "0 -1 0"
+"b12" 10 "0 -1 0"
+"n13" 5 "0 -1 0"
+"g9" 4 "0 -1 0"
+"f9" 4 "0 -1 0"
+"e9" 4 "0 -1 0"
+"d9" 4 "0 -1 0"
+"c9" 4 "0 -1 0"
+"b9" 4 "0 -1 0"
+"a9" 4 "0 -1 0"
+"a8" 4 "0 -1 0"
+"b8" 4 "0 -1 0"
+"c8" 4 "0 -1 0"
+"e8" 4 "0 -1 0"
+"f8" 4 "0 -1 0"
+"g8" 4 "0 -1 0"
+"n12" 5 "0 -1 0"
+"n11" 5 "0 -1 0"
+"n10" 5 "0 -1 0"
+"n9" 5 "0 -1 0"
+"m9" 5 "0 -1 0"
+"m8" 4 "0 -1 0"
+"n8" 4 "0 -1 0"
+"o8" 4 "0 -1 0"
+"p8" 4 "0 -1 0"
+"q8" 4 "0 -1 0"
+"d8" 10 "0 -1 0"
+"s8" 4 "0 -1 0"
+"t8" 4 "0 -1 0"
+"t7" 4 "0 -1 0"
+"s7" 4 "0 -1 0"
+"r7" 4 "0 -1 0"
+"q7" 4 "0 -1 0"
+"p7" 4 "0 -1 0"
+"o7" 4 "0 -1 0"
+"n7" 4 "0 -1 0"
+"m7" 4 "0 -1 0"
+"l7" 4 "0 -1 0"
+"k7" 4 "0 -1 0"
+"j7" 4 "0 -1 0"
+"i7" 4 "0 -1 0"
+"h7" 4 "0 -1 0"
+"g7" 4 "0 -1 0"
+"f7" 4 "0 -1 0"
+"e7" 4 "0 -1 0"
+"d7" 4 "0 -1 0"
+"c7" 4 "0 -1 0"
+"b7" 4 "0 -1 0"
+"a7" 4 "0 -1 0"
+"a6" 4 "0 -1 0"
+"b6" 4 "0 -1 0"
+"c6" 4 "0 -1 0"
+"d6" 4 "0 -1 0"
+"e6" 4 "0 -1 0"
+"f6" 4 "0 -1 0"
+"g6" 4 "0 -1 0"
+"h6" 4 "0 -1 0"
+"i6" 4 "0 -1 0"
+"j6" 4 "0 -1 0"
+"k6" 4 "0 -1 0"
+"l6" 4 "0 -1 0"
+"m6" 4 "0 -1 0"
+"n6" 4 "0 -1 0"
+"o6" 4 "0 -1 0"
+"p6" 4 "0 -1 0"
+"q6" 4 "0 -1 0"
+"r6" 4 "0 -1 0"
+"s6" 4 "0 -1 0"
+"t6" 4 "0 -1 0"
+"t5" 4 "0 -1 0"
+"s5" 4 "0 -1 0"
+"r5" 4 "0 -1 0"
+"q5" 4 "0 -1 0"
+"p5" 4 "0 -1 0"
+"o5" 4 "0 -1 0"
+"n5" 4 "0 -1 0"
+"m5" 4 "0 -1 0"
+"l5" 4 "0 -1 0"
+"k5" 4 "0 -1 0"
+"j5" 4 "0 -1 0"
+"i5" 4 "0 -1 0"
+"h5" 4 "0 -1 0"
+"g5" 4 "0 -1 0"
+"f5" 4 "0 -1 0"
+"e5" 4 "0 -1 0"
+"d5" 4 "0 -1 0"
+"c5" 4 "0 -1 0"
+"b5" 4 "0 -1 0"
+"a5" 4 "0 -1 0"
+"a4" 4 "0 -1 0"
+"b4" 4 "0 -1 0"
+"c4" 4 "0 -1 0"
+"d4" 4 "0 -1 0"
+"e4" 4 "0 -1 0"
+"f4" 4 "0 -1 0"
+"g4" 4 "0 -1 0"
+"h4" 4 "0 -1 0"
+"i4" 4 "0 -1 0"
+"j4" 4 "0 -1 0"
+"k4" 4 "0 -1 0"
+"l4" 4 "0 -1 0"
+"m4" 4 "0 -1 0"
+"n4" 4 "0 -1 0"
+"o4" 4 "0 -1 0"
+"p4" 4 "0 -1 0"
+"q4" 4 "0 -1 0"
+"r4" 4 "0 -1 0"
+"s4" 4 "0 -1 0"
+"t4" 4 "0 -1 0"
+"t3" 4 "0 -1 0"
+"s3" 4 "0 -1 0"
+"r3" 4 "0 -1 0"
+"q3" 4 "0 -1 0"
+"p3" 4 "0 -1 0"
+"o3" 4 "0 -1 0"
+"n3" 4 "0 -1 0"
+"m3" 4 "0 -1 0"
+"l3" 4 "0 -1 0"
+"k3" 4 "0 -1 0"
+"j3" 4 "0 -1 0"
+"i3" 4 "0 -1 0"
+"h3" 4 "0 -1 0"
+"g3" 4 "0 -1 0"
+"f3" 4 "0 -1 0"
+"e3" 4 "0 -1 0"
+"d3" 4 "0 -1 0"
+"c3" 4 "0 -1 0"
+"b3" 4 "0 -1 0"
+"a3" 4 "0 -1 0"
+"a2" 4 "0 -1 0"
+"b2" 4 "0 -1 0"
+"c2" 4 "0 -1 0"
+"d2" 4 "0 -1 0"
+"e2" 4 "0 -1 0"
+"f2" 4 "0 -1 0"
+"g2" 4 "0 -1 0"
+"h2" 4 "0 -1 0"
+"i2" 4 "0 -1 0"
+"j2" 4 "0 -1 0"
+"k2" 4 "0 -1 0"
+"l2" 4 "0 -1 0"
+"m2" 4 "0 -1 0"
+"n2" 4 "0 -1 0"
+"o2" 4 "0 -1 0"
+"p2" 4 "0 -1 0"
+"q2" 4 "0 -1 0"
+"r2" 4 "0 -1 0"
+"s2" 4 "0 -1 0"
+"t2" 4 "0 -1 0"
+"t1" 4 "0 -1 0"
+"s1" 4 "0 -1 0"
+"r1" 4 "0 -1 0"
+"q1" 4 "0 -1 0"
+"p1" 4 "0 -1 0"
+"o1" 4 "0 -1 0"
+"n1" 4 "0 -1 0"
+"m1" 4 "0 -1 0"
+"l1" 4 "0 -1 0"
+"k1" 4 "0 -1 0"
+"j1" 4 "0 -1 0"
+"i1" 4 "0 -1 0"
+"h1" 4 "0 -1 0"
+"g1" 4 "0 -1 0"
+"f1" 4 "0 -1 0"
+"e1" 4 "0 -1 0"
+"d1" 4 "0 -1 0"
+"c1" 4 "0 -1 0"
+"b1" 4 "0 -1 0"
+"a1" 4 "0 -1 0"
+"t13" 4 "0 -1 0"
+"s13" 4 "0 -1 0"
+"r13" 4 "0 -1 0"
+"q13" 4 "0 -1 0"
+"p13" 4 "0 -1 0"
+"o13" 4 "0 -1 0"
+"l9" 5 "0 -1 0"
+"l8" 5 "0 -1 0"
+"k8" 5 "0 -1 0"
+"j8" 5 "0 -1 0"
+"g13" 4 "0 -1 0"
+"f13" 4 "0 -1 0"
+"f14" 4 "0 -1 0"
+"d14" 4 "0 -1 0"
+"b14" 4 "0 -1 0"
+"a14" 4 "0 -1 0"
+"a15" 4 "0 -1 0"
+"b15" 4 "0 -1 0"
+"c15" 4 "0 -1 0"
+"d15" 4 "0 -1 0"
+"e15" 4 "0 -1 0"
+"f15" 4 "0 -1 0"
+"g15" 4 "0 -1 0"
+"h15" 4 "0 -1 0"
+"i15" 4 "0 -1 0"
+"j15" 4 "0 -1 0"
+"i8" 5 "0 -1 0"
+"h8" 5 "0 -1 0"
+"o15" 4 "0 -1 0"
+"p15" 4 "0 -1 0"
+"q15" 4 "0 -1 0"
+"r15" 4 "0 -1 0"
+"s15" 4 "0 -1 0"
+"t15" 4 "0 -1 0"
+"t14" 4 "0 -1 0"
+"r14" 4 "0 -1 0"
+"p14" 4 "0 -1 0"
+"o14" 4 "0 -1 0"
+"h9" 5 "0 -1 0"
+"h10" 5 "0 -1 0"
+"h11" 5 "0 -1 0"
+"i14" 4 "0 -1 0"
+"h14" 4 "0 -1 0"
+"g14" 4 "0 -1 0"
+"t16" 4 "0 -1 0"
+"s16" 4 "0 -1 0"
+"q16" 4 "0 -1 0"
+"p16" 4 "0 -1 0"
+"o16" 4 "0 -1 0"
+"h12" 5 "0 -1 0"
+"h13" 5 "0 -1 0"
+"i13" 5 "0 -1 0"
+"j13" 5 "0 -1 0"
+"j16" 4 "0 -1 0"
+"i16" 4 "0 -1 0"
+"h16" 4 "0 -1 0"
+"g16" 4 "0 -1 0"
+"f16" 4 "0 -1 0"
+"e16" 4 "0 -1 0"
+"c16" 4 "0 -1 0"
+"b16" 4 "0 -1 0"
+"a16" 4 "0 -1 0"
+"a17" 4 "0 -1 0"
+"b17" 4 "0 -1 0"
+"c17" 4 "0 -1 0"
+"d17" 4 "0 -1 0"
+"e17" 4 "0 -1 0"
+"f17" 4 "0 -1 0"
+"g17" 4 "0 -1 0"
+"h17" 4 "0 -1 0"
+"i17" 4 "0 -1 0"
+"j17" 4 "0 -1 0"
+"k17" 4 "0 -1 0"
+"l17" 4 "0 -1 0"
+"m17" 4 "0 -1 0"
+"n17" 4 "0 -1 0"
+"o17" 4 "0 -1 0"
+"p17" 4 "0 -1 0"
+"q17" 4 "0 -1 0"
+"r17" 4 "0 -1 0"
+"s17" 4 "0 -1 0"
+"t17" 4 "0 -1 0"
+"t18" 4 "0 -1 0"
+"s18" 4 "0 -1 0"
+"r18" 4 "0 -1 0"
+"q18" 4 "0 -1 0"
+"p18" 4 "0 -1 0"
+"o18" 4 "0 -1 0"
+"n18" 4 "0 -1 0"
+"m18" 4 "0 -1 0"
+"l18" 4 "0 -1 0"
+"k18" 4 "0 -1 0"
+"j18" 4 "0 -1 0"
+"i18" 4 "0 -1 0"
+"h18" 4 "0 -1 0"
+"g18" 4 "0 -1 0"
+"f18" 4 "0 -1 0"
+"e18" 4 "0 -1 0"
+"d18" 4 "0 -1 0"
+"c18" 4 "0 -1 0"
+"b18" 4 "0 -1 0"
+"a18" 4 "0 -1 0"
+"a19" 4 "0 -1 0"
+"b19" 4 "0 -1 0"
+"c19" 4 "0 -1 0"
+"d19" 4 "0 -1 0"
+"e19" 4 "0 -1 0"
+"f19" 4 "0 -1 0"
+"g19" 4 "0 -1 0"
+"h19" 4 "0 -1 0"
+"i19" 4 "0 -1 0"
+"j19" 4 "0 -1 0"
+"k19" 4 "0 -1 0"
+"l19" 4 "0 -1 0"
+"m19" 4 "0 -1 0"
+"n19" 4 "0 -1 0"
+"o19" 4 "0 -1 0"
+"p19" 4 "0 -1 0"
+"q19" 4 "0 -1 0"
+"r19" 4 "0 -1 0"
+"s19" 4 "0 -1 0"
+"t19" 4 "0 -1 0"
+"t20" 4 "0 -1 0"
+"s20" 4 "0 -1 0"
+"r20" 4 "0 -1 0"
+"q20" 4 "0 -1 0"
+"p20" 4 "0 -1 0"
+"o20" 4 "0 -1 0"
+"n20" 4 "0 -1 0"
+"m20" 4 "0 -1 0"
+"l20" 4 "0 -1 0"
+"k20" 4 "0 -1 0"
+"j20" 4 "0 -1 0"
+"i20" 4 "0 -1 0"
+"h20" 4 "0 -1 0"
+"g20" 4 "0 -1 0"
+"f20" 4 "0 -1 0"
+"e20" 4 "0 -1 0"
+"d20" 4 "0 -1 0"
+"c20" 4 "0 -1 0"
+"b20" 4 "0 -1 0"
+"a20" 4 "0 -1 0"
diff --git a/minigames/bulldozer/storage_level11.txt b/minigames/bulldozer/storage_level11.txt
new file mode 100644 (file)
index 0000000..5cb5462
--- /dev/null
@@ -0,0 +1,355 @@
+// bulldozer storage "level11" last updated 11-06-2016 15:03:24
+nextlevel = "level12"
+"e6" 5 "0 -1 0"
+"f6" 5 "0 -1 0"
+"g6" 5 "0 -1 0"
+"h6" 5 "0 -1 0"
+"i6" 5 "0 -1 0"
+"j6" 5 "0 -1 0"
+"k6" 5 "0 -1 0"
+"l6" 5 "0 -1 0"
+"m6" 5 "0 -1 0"
+"n6" 5 "0 -1 0"
+"o6" 5 "0 -1 0"
+"p6" 5 "0 -1 0"
+"e7" 5 "0 -1 0"
+"e8" 5 "0 -1 0"
+"e9" 5 "0 -1 0"
+"d9" 5 "0 -1 0"
+"d10" 5 "0 -1 0"
+"d11" 5 "0 -1 0"
+"d12" 5 "0 -1 0"
+"d13" 5 "0 -1 0"
+"d14" 5 "0 -1 0"
+"d15" 5 "0 -1 0"
+"e15" 5 "0 -1 0"
+"f15" 5 "0 -1 0"
+"g15" 5 "0 -1 0"
+"h16" 5 "0 -1 0"
+"g16" 5 "0 -1 0"
+"i16" 5 "0 -1 0"
+"j16" 5 "0 -1 0"
+"k16" 5 "0 -1 0"
+"l16" 5 "0 -1 0"
+"m16" 5 "0 -1 0"
+"m15" 5 "0 -1 0"
+"m14" 5 "0 -1 0"
+"m13" 5 "0 -1 0"
+"n13" 5 "0 -1 0"
+"n12" 5 "0 -1 0"
+"n11" 5 "0 -1 0"
+"n10" 5 "0 -1 0"
+"n9" 5 "0 -1 0"
+"o9" 5 "0 -1 0"
+"p9" 5 "0 -1 0"
+"p8" 5 "0 -1 0"
+"p7" 5 "0 -1 0"
+"a20" 10 "0 -1 0"
+"a19" 10 "0 -1 0"
+"a18" 10 "0 -1 0"
+"a17" 10 "0 -1 0"
+"a16" 10 "0 -1 0"
+"a15" 10 "0 -1 0"
+"a14" 10 "0 -1 0"
+"a13" 10 "0 -1 0"
+"a12" 10 "0 -1 0"
+"a11" 10 "0 -1 0"
+"a10" 10 "0 -1 0"
+"a9" 10 "0 -1 0"
+"a8" 10 "0 -1 0"
+"a7" 10 "0 -1 0"
+"a6" 10 "0 -1 0"
+"a5" 10 "0 -1 0"
+"a4" 10 "0 -1 0"
+"a3" 10 "0 -1 0"
+"a2" 10 "0 -1 0"
+"a1" 10 "0 -1 0"
+"t20" 10 "0 -1 0"
+"t19" 10 "0 -1 0"
+"t18" 10 "0 -1 0"
+"t17" 10 "0 -1 0"
+"t16" 10 "0 -1 0"
+"t15" 10 "0 -1 0"
+"t14" 10 "0 -1 0"
+"t12" 10 "0 -1 0"
+"t11" 10 "0 -1 0"
+"t10" 10 "0 -1 0"
+"t9" 10 "0 -1 0"
+"t8" 10 "0 -1 0"
+"t7" 10 "0 -1 0"
+"t6" 10 "0 -1 0"
+"t5" 10 "0 -1 0"
+"t4" 10 "0 -1 0"
+"t3" 10 "0 -1 0"
+"t2" 10 "0 -1 0"
+"t1" 10 "0 -1 0"
+"t13" 10 "0 -1 0"
+"e3" 4 "0 -1 0"
+"d3" 4 "0 -1 0"
+"c3" 4 "0 -1 0"
+"b3" 4 "0 -1 0"
+"b2" 4 "0 -1 0"
+"c2" 4 "0 -1 0"
+"d2" 4 "0 -1 0"
+"e2" 4 "0 -1 0"
+"f2" 4 "0 -1 0"
+"g2" 4 "0 -1 0"
+"h2" 4 "0 -1 0"
+"i2" 4 "0 -1 0"
+"j2" 4 "0 -1 0"
+"k2" 4 "0 -1 0"
+"l2" 4 "0 -1 0"
+"m2" 4 "0 -1 0"
+"n2" 4 "0 -1 0"
+"o2" 4 "0 -1 0"
+"p2" 4 "0 -1 0"
+"q2" 4 "0 -1 0"
+"r2" 4 "0 -1 0"
+"s2" 4 "0 -1 0"
+"s1" 4 "0 -1 0"
+"r1" 4 "0 -1 0"
+"q1" 4 "0 -1 0"
+"p1" 4 "0 -1 0"
+"o1" 4 "0 -1 0"
+"n1" 4 "0 -1 0"
+"m1" 4 "0 -1 0"
+"l1" 4 "0 -1 0"
+"k1" 4 "0 -1 0"
+"j1" 4 "0 -1 0"
+"i1" 4 "0 -1 0"
+"h1" 4 "0 -1 0"
+"g1" 4 "0 -1 0"
+"f1" 4 "0 -1 0"
+"e1" 4 "0 -1 0"
+"d1" 4 "0 -1 0"
+"c1" 4 "0 -1 0"
+"b1" 4 "0 -1 0"
+"s3" 4 "0 -1 0"
+"r3" 4 "0 -1 0"
+"q3" 4 "0 -1 0"
+"p3" 4 "0 -1 0"
+"o3" 4 "0 -1 0"
+"n3" 4 "0 -1 0"
+"m3" 4 "0 -1 0"
+"l3" 4 "0 -1 0"
+"k3" 4 "0 -1 0"
+"j3" 4 "0 -1 0"
+"i3" 4 "0 -1 0"
+"h3" 4 "0 -1 0"
+"g3" 4 "0 -1 0"
+"f3" 4 "0 -1 0"
+"f4" 4 "0 -1 0"
+"e4" 4 "0 -1 0"
+"d4" 4 "0 -1 0"
+"c4" 4 "0 -1 0"
+"b4" 4 "0 -1 0"
+"b5" 4 "0 -1 0"
+"c5" 4 "0 -1 0"
+"d5" 4 "0 -1 0"
+"e5" 4 "0 -1 0"
+"f5" 4 "0 -1 0"
+"g5" 4 "0 -1 0"
+"h5" 4 "0 -1 0"
+"i5" 4 "0 -1 0"
+"j5" 4 "0 -1 0"
+"k5" 4 "0 -1 0"
+"l5" 4 "0 -1 0"
+"m5" 4 "0 -1 0"
+"n5" 4 "0 -1 0"
+"o5" 4 "0 -1 0"
+"p5" 4 "0 -1 0"
+"q5" 4 "0 -1 0"
+"r5" 4 "0 -1 0"
+"s5" 4 "0 -1 0"
+"s4" 4 "0 -1 0"
+"r4" 4 "0 -1 0"
+"q4" 4 "0 -1 0"
+"p4" 4 "0 -1 0"
+"o4" 4 "0 -1 0"
+"n4" 4 "0 -1 0"
+"m4" 4 "0 -1 0"
+"l4" 4 "0 -1 0"
+"k4" 4 "0 -1 0"
+"j4" 4 "0 -1 0"
+"i4" 4 "0 -1 0"
+"h4" 4 "0 -1 0"
+"g4" 4 "0 -1 0"
+"s6" 4 "0 -1 0"
+"r6" 4 "0 -1 0"
+"q6" 4 "0 -1 0"
+"q7" 4 "0 -1 0"
+"r7" 4 "0 -1 0"
+"s7" 4 "0 -1 0"
+"s8" 4 "0 -1 0"
+"r8" 4 "0 -1 0"
+"q8" 4 "0 -1 0"
+"q9" 4 "0 -1 0"
+"r9" 4 "0 -1 0"
+"s9" 4 "0 -1 0"
+"s10" 4 "0 -1 0"
+"r10" 4 "0 -1 0"
+"q10" 4 "0 -1 0"
+"p10" 4 "0 -1 0"
+"o10" 4 "0 -1 0"
+"o11" 4 "0 -1 0"
+"p11" 4 "0 -1 0"
+"q11" 4 "0 -1 0"
+"r11" 4 "0 -1 0"
+"s11" 4 "0 -1 0"
+"s12" 4 "0 -1 0"
+"r12" 4 "0 -1 0"
+"q12" 4 "0 -1 0"
+"p12" 4 "0 -1 0"
+"o12" 4 "0 -1 0"
+"o13" 4 "0 -1 0"
+"p13" 4 "0 -1 0"
+"q13" 4 "0 -1 0"
+"r13" 4 "0 -1 0"
+"s13" 4 "0 -1 0"
+"s14" 4 "0 -1 0"
+"r14" 4 "0 -1 0"
+"q14" 4 "0 -1 0"
+"p14" 4 "0 -1 0"
+"o14" 4 "0 -1 0"
+"n14" 4 "0 -1 0"
+"n15" 4 "0 -1 0"
+"o15" 4 "0 -1 0"
+"p15" 4 "0 -1 0"
+"q15" 4 "0 -1 0"
+"r15" 4 "0 -1 0"
+"s15" 4 "0 -1 0"
+"s16" 4 "0 -1 0"
+"r16" 4 "0 -1 0"
+"q16" 4 "0 -1 0"
+"p16" 4 "0 -1 0"
+"o16" 4 "0 -1 0"
+"n16" 4 "0 -1 0"
+"n17" 4 "0 -1 0"
+"m17" 4 "0 -1 0"
+"l17" 4 "0 -1 0"
+"k17" 4 "0 -1 0"
+"j17" 4 "0 -1 0"
+"i17" 4 "0 -1 0"
+"h17" 4 "0 -1 0"
+"g17" 4 "0 -1 0"
+"f17" 4 "0 -1 0"
+"e17" 4 "0 -1 0"
+"d17" 4 "0 -1 0"
+"c17" 4 "0 -1 0"
+"b17" 4 "0 -1 0"
+"b16" 4 "0 -1 0"
+"c16" 4 "0 -1 0"
+"d16" 4 "0 -1 0"
+"e16" 4 "0 -1 0"
+"f16" 4 "0 -1 0"
+"c15" 4 "0 -1 0"
+"b15" 4 "0 -1 0"
+"b14" 4 "0 -1 0"
+"c14" 4 "0 -1 0"
+"c13" 4 "0 -1 0"
+"b13" 4 "0 -1 0"
+"b12" 4 "0 -1 0"
+"c12" 4 "0 -1 0"
+"c11" 4 "0 -1 0"
+"b11" 4 "0 -1 0"
+"b10" 4 "0 -1 0"
+"c10" 4 "0 -1 0"
+"c9" 4 "0 -1 0"
+"b9" 4 "0 -1 0"
+"b8" 4 "0 -1 0"
+"c8" 4 "0 -1 0"
+"d8" 4 "0 -1 0"
+"d7" 4 "0 -1 0"
+"c7" 4 "0 -1 0"
+"b7" 4 "0 -1 0"
+"b6" 4 "0 -1 0"
+"c6" 4 "0 -1 0"
+"d6" 4 "0 -1 0"
+"b18" 4 "0 -1 0"
+"c18" 4 "0 -1 0"
+"d18" 4 "0 -1 0"
+"e18" 4 "0 -1 0"
+"f18" 4 "0 -1 0"
+"g18" 4 "0 -1 0"
+"h18" 4 "0 -1 0"
+"i18" 4 "0 -1 0"
+"j18" 4 "0 -1 0"
+"k18" 4 "0 -1 0"
+"l18" 4 "0 -1 0"
+"m18" 4 "0 -1 0"
+"n18" 4 "0 -1 0"
+"o18" 4 "0 -1 0"
+"p18" 4 "0 -1 0"
+"q18" 4 "0 -1 0"
+"r18" 4 "0 -1 0"
+"s18" 4 "0 -1 0"
+"s17" 4 "0 -1 0"
+"r17" 4 "0 -1 0"
+"q17" 4 "0 -1 0"
+"p17" 4 "0 -1 0"
+"o17" 4 "0 -1 0"
+"s19" 4 "0 -1 0"
+"r19" 4 "0 -1 0"
+"q19" 4 "0 -1 0"
+"p19" 4 "0 -1 0"
+"o19" 4 "0 -1 0"
+"n19" 4 "0 -1 0"
+"m19" 4 "0 -1 0"
+"l19" 4 "0 -1 0"
+"k19" 4 "0 -1 0"
+"j19" 4 "0 -1 0"
+"i19" 4 "0 -1 0"
+"h19" 4 "0 -1 0"
+"g19" 4 "0 -1 0"
+"f19" 4 "0 -1 0"
+"e19" 4 "0 -1 0"
+"d19" 4 "0 -1 0"
+"c19" 4 "0 -1 0"
+"b19" 4 "0 -1 0"
+"b20" 4 "0 -1 0"
+"c20" 4 "0 -1 0"
+"d20" 4 "0 -1 0"
+"e20" 4 "0 -1 0"
+"f20" 4 "0 -1 0"
+"g20" 4 "0 -1 0"
+"h20" 4 "0 -1 0"
+"i20" 4 "0 -1 0"
+"j20" 4 "0 -1 0"
+"k20" 4 "0 -1 0"
+"l20" 4 "0 -1 0"
+"m20" 4 "0 -1 0"
+"n20" 4 "0 -1 0"
+"o20" 4 "0 -1 0"
+"p20" 4 "0 -1 0"
+"q20" 4 "0 -1 0"
+"r20" 4 "0 -1 0"
+"s20" 4 "0 -1 0"
+"f13" 5 "0 -1 0"
+"f12" 5 "0 -1 0"
+"f11" 5 "0 -1 0"
+"g10" 5 "0 -1 0"
+"h13" 5 "0 -1 0"
+"i14" 5 "0 -1 0"
+"j14" 5 "0 -1 0"
+"k14" 5 "0 -1 0"
+"k12" 5 "0 -1 0"
+"l11" 5 "0 -1 0"
+"l10" 5 "0 -1 0"
+"l9" 5 "0 -1 0"
+"l7" 5 "0 -1 0"
+"k7" 5 "0 -1 0"
+"g8" 5 "0 -1 0"
+"i8" 5 "0 -1 0"
+"h8" 5 "0 -1 0"
+"j9" 5 "0 -1 0"
+"l8" 1 "0 -1 0"
+"j8" 2 "0 -1 0"
+"i11" 2 "0 -1 0"
+"f10" 2 "0 -1 0"
+"h14" 2 "0 -1 0"
+"l12" 2 "0 -1 0"
+"h10" 3 "0 -1 0"
+"i11" 3 "0 -1 0"
+"h12" 3 "0 -1 0"
+"j12" 3 "0 -1 0"
+"j10" 3 "0 -1 0"
diff --git a/minigames/bulldozer/storage_level12.txt b/minigames/bulldozer/storage_level12.txt
new file mode 100644 (file)
index 0000000..f7162fb
--- /dev/null
@@ -0,0 +1,323 @@
+// bulldozer storage "level12" last updated 11-06-2016 15:11:43
+nextlevel = "level13"
+"b18" 4 "0 -1 0"
+"c18" 4 "0 -1 0"
+"d18" 4 "0 -1 0"
+"e18" 4 "0 -1 0"
+"f18" 4 "0 -1 0"
+"g18" 4 "0 -1 0"
+"h18" 4 "0 -1 0"
+"i18" 4 "0 -1 0"
+"j18" 4 "0 -1 0"
+"k18" 4 "0 -1 0"
+"l18" 4 "0 -1 0"
+"m18" 4 "0 -1 0"
+"n18" 4 "0 -1 0"
+"o18" 4 "0 -1 0"
+"p18" 4 "0 -1 0"
+"q18" 4 "0 -1 0"
+"r18" 4 "0 -1 0"
+"s18" 4 "0 -1 0"
+"t7" 11 "0 -1 0"
+"t17" 4 "0 -1 0"
+"t16" 4 "0 -1 0"
+"t15" 4 "0 -1 0"
+"t14" 4 "0 -1 0"
+"t13" 4 "0 -1 0"
+"t12" 4 "0 -1 0"
+"t11" 4 "0 -1 0"
+"t10" 4 "0 -1 0"
+"t9" 4 "0 -1 0"
+"b7" 4 "0 -1 0"
+"c7" 4 "0 -1 0"
+"a18" 11 "0 -1 0"
+"a17" 4 "0 -1 0"
+"a16" 4 "0 -1 0"
+"a15" 4 "0 -1 0"
+"a14" 4 "0 -1 0"
+"a13" 4 "0 -1 0"
+"a12" 4 "0 -1 0"
+"a11" 4 "0 -1 0"
+"a10" 4 "0 -1 0"
+"a9" 4 "0 -1 0"
+"a8" 4 "0 -1 0"
+"d17" 5 "0 -1 0"
+"t8" 4 "0 -1 0"
+"a7" 11 "0 -1 0"
+"s7" 4 "0 -1 0"
+"r7" 4 "0 -1 0"
+"q7" 4 "0 -1 0"
+"p7" 4 "0 -1 0"
+"o7" 4 "0 -1 0"
+"n7" 4 "0 -1 0"
+"l7" 4 "0 -1 0"
+"k7" 4 "0 -1 0"
+"j7" 4 "0 -1 0"
+"i7" 4 "0 -1 0"
+"h7" 4 "0 -1 0"
+"g7" 4 "0 -1 0"
+"f7" 4 "0 -1 0"
+"e7" 4 "0 -1 0"
+"d7" 4 "0 -1 0"
+"m7" 4 "0 -1 0"
+"c5" 4 "0 -1 0"
+"b5" 4 "0 -1 0"
+"a5" 4 "0 -1 0"
+"a4" 4 "0 -1 0"
+"b4" 4 "0 -1 0"
+"c4" 4 "0 -1 0"
+"d4" 4 "0 -1 0"
+"e4" 4 "0 -1 0"
+"f4" 4 "0 -1 0"
+"g4" 4 "0 -1 0"
+"h4" 4 "0 -1 0"
+"i4" 4 "0 -1 0"
+"j4" 4 "0 -1 0"
+"k4" 4 "0 -1 0"
+"l4" 4 "0 -1 0"
+"m4" 4 "0 -1 0"
+"n4" 4 "0 -1 0"
+"o4" 4 "0 -1 0"
+"p4" 4 "0 -1 0"
+"q4" 4 "0 -1 0"
+"r4" 4 "0 -1 0"
+"s4" 4 "0 -1 0"
+"t4" 4 "0 -1 0"
+"t3" 4 "0 -1 0"
+"s3" 4 "0 -1 0"
+"r3" 4 "0 -1 0"
+"q3" 4 "0 -1 0"
+"p3" 4 "0 -1 0"
+"o3" 4 "0 -1 0"
+"n3" 4 "0 -1 0"
+"m3" 4 "0 -1 0"
+"l3" 4 "0 -1 0"
+"k3" 4 "0 -1 0"
+"j3" 4 "0 -1 0"
+"i3" 4 "0 -1 0"
+"h3" 4 "0 -1 0"
+"g3" 4 "0 -1 0"
+"f3" 4 "0 -1 0"
+"e3" 4 "0 -1 0"
+"d3" 4 "0 -1 0"
+"c3" 4 "0 -1 0"
+"b3" 4 "0 -1 0"
+"a3" 4 "0 -1 0"
+"a2" 4 "0 -1 0"
+"b2" 4 "0 -1 0"
+"c2" 4 "0 -1 0"
+"d2" 4 "0 -1 0"
+"e2" 4 "0 -1 0"
+"f2" 4 "0 -1 0"
+"g2" 4 "0 -1 0"
+"h2" 4 "0 -1 0"
+"i2" 4 "0 -1 0"
+"j2" 4 "0 -1 0"
+"k2" 4 "0 -1 0"
+"l2" 4 "0 -1 0"
+"m2" 4 "0 -1 0"
+"n2" 4 "0 -1 0"
+"o2" 4 "0 -1 0"
+"p2" 4 "0 -1 0"
+"q2" 4 "0 -1 0"
+"r2" 4 "0 -1 0"
+"s2" 4 "0 -1 0"
+"t2" 4 "0 -1 0"
+"t1" 4 "0 -1 0"
+"s1" 4 "0 -1 0"
+"r1" 4 "0 -1 0"
+"q1" 4 "0 -1 0"
+"p1" 4 "0 -1 0"
+"o1" 4 "0 -1 0"
+"n1" 4 "0 -1 0"
+"m1" 4 "0 -1 0"
+"l1" 4 "0 -1 0"
+"k1" 4 "0 -1 0"
+"j1" 4 "0 -1 0"
+"i1" 4 "0 -1 0"
+"h1" 4 "0 -1 0"
+"g1" 4 "0 -1 0"
+"f1" 4 "0 -1 0"
+"e1" 4 "0 -1 0"
+"d1" 4 "0 -1 0"
+"c1" 4 "0 -1 0"
+"b1" 4 "0 -1 0"
+"a1" 4 "0 -1 0"
+"t5" 4 "0 -1 0"
+"s5" 4 "0 -1 0"
+"r5" 4 "0 -1 0"
+"q5" 4 "0 -1 0"
+"p5" 4 "0 -1 0"
+"o5" 4 "0 -1 0"
+"n5" 4 "0 -1 0"
+"m5" 4 "0 -1 0"
+"l5" 4 "0 -1 0"
+"k5" 4 "0 -1 0"
+"j5" 4 "0 -1 0"
+"i5" 4 "0 -1 0"
+"h5" 4 "0 -1 0"
+"g5" 4 "0 -1 0"
+"f5" 4 "0 -1 0"
+"e5" 4 "0 -1 0"
+"d5" 4 "0 -1 0"
+"d6" 4 "0 -1 0"
+"c6" 4 "0 -1 0"
+"b6" 4 "0 -1 0"
+"a6" 4 "0 -1 0"
+"e6" 4 "0 -1 0"
+"f6" 4 "0 -1 0"
+"g6" 4 "0 -1 0"
+"h6" 4 "0 -1 0"
+"i6" 4 "0 -1 0"
+"j6" 4 "0 -1 0"
+"k6" 4 "0 -1 0"
+"l6" 4 "0 -1 0"
+"m6" 4 "0 -1 0"
+"n6" 4 "0 -1 0"
+"o6" 4 "0 -1 0"
+"p6" 4 "0 -1 0"
+"q6" 4 "0 -1 0"
+"r6" 4 "0 -1 0"
+"s6" 4 "0 -1 0"
+"t6" 4 "0 -1 0"
+"b19" 4 "0 -1 0"
+"a19" 4 "0 -1 0"
+"a20" 4 "0 -1 0"
+"b20" 4 "0 -1 0"
+"c20" 4 "0 -1 0"
+"d20" 4 "0 -1 0"
+"e20" 4 "0 -1 0"
+"f20" 4 "0 -1 0"
+"g20" 4 "0 -1 0"
+"h20" 4 "0 -1 0"
+"i20" 4 "0 -1 0"
+"j20" 4 "0 -1 0"
+"k20" 4 "0 -1 0"
+"l20" 4 "0 -1 0"
+"m20" 4 "0 -1 0"
+"n20" 4 "0 -1 0"
+"o20" 4 "0 -1 0"
+"p20" 4 "0 -1 0"
+"q20" 4 "0 -1 0"
+"r20" 4 "0 -1 0"
+"s20" 4 "0 -1 0"
+"t20" 4 "0 -1 0"
+"t19" 4 "0 -1 0"
+"s19" 4 "0 -1 0"
+"r19" 4 "0 -1 0"
+"q19" 4 "0 -1 0"
+"p19" 4 "0 -1 0"
+"o19" 4 "0 -1 0"
+"n19" 4 "0 -1 0"
+"m19" 4 "0 -1 0"
+"l19" 4 "0 -1 0"
+"k19" 4 "0 -1 0"
+"j19" 4 "0 -1 0"
+"i19" 4 "0 -1 0"
+"h19" 4 "0 -1 0"
+"g19" 4 "0 -1 0"
+"f19" 4 "0 -1 0"
+"e19" 4 "0 -1 0"
+"d19" 4 "0 -1 0"
+"c19" 4 "0 -1 0"
+"t18" 11 "0 -1 0"
+"d16" 5 "0 -1 0"
+"e13" 5 "0 -1 0"
+"d15" 5 "0 -1 0"
+"d14" 5 "0 -1 0"
+"d13" 5 "0 -1 0"
+"e12" 5 "0 -1 0"
+"g11" 5 "0 -1 0"
+"e11" 5 "0 -1 0"
+"g12" 5 "0 -1 0"
+"g13" 5 "0 -1 0"
+"g14" 5 "0 -1 0"
+"h14" 5 "0 -1 0"
+"i14" 5 "0 -1 0"
+"i13" 5 "0 -1 0"
+"i12" 5 "0 -1 0"
+"i11" 5 "0 -1 0"
+"g10" 5 "0 -1 0"
+"i10" 5 "0 -1 0"
+"h10" 5 "0 -1 0"
+"h11" 10 "0 -1 0"
+"h12" 10 "0 -1 0"
+"h13" 10 "0 -1 0"
+"d8" 5 "0 -1 0"
+"d9" 5 "0 -1 0"
+"e17" 5 "0 -1 0"
+"f17" 5 "0 -1 0"
+"g17" 5 "0 -1 0"
+"h17" 5 "0 -1 0"
+"i17" 5 "0 -1 0"
+"i16" 5 "0 -1 0"
+"m17" 5 "0 -1 0"
+"n17" 5 "0 -1 0"
+"o17" 5 "0 -1 0"
+"l15" 5 "0 -1 0"
+"m15" 5 "0 -1 0"
+"o15" 5 "0 -1 0"
+"n15" 5 "0 -1 0"
+"p15" 5 "0 -1 0"
+"p14" 5 "0 -1 0"
+"q14" 5 "0 -1 0"
+"r14" 5 "0 -1 0"
+"s14" 8 "0 -1 0"
+"r13" 8 "0 -1 0"
+"q12" 8 "0 -1 0"
+"p11" 8 "0 -1 0"
+"o10" 8 "0 -1 0"
+"n9" 8 "0 -1 0"
+"m8" 8 "0 -1 0"
+"m9" 5 "0 -1 0"
+"m11" 5 "0 -1 0"
+"m14" 5 "0 -1 0"
+"m13" 5 "0 -1 0"
+"q9" 4 "0 -1 0"
+"p9" 4 "0 -1 0"
+"o9" 4 "0 -1 0"
+"o8" 4 "0 -1 0"
+"n8" 4 "0 -1 0"
+"p8" 4 "0 -1 0"
+"q8" 4 "0 -1 0"
+"r8" 4 "0 -1 0"
+"s8" 4 "0 -1 0"
+"s9" 4 "0 -1 0"
+"r9" 4 "0 -1 0"
+"r10" 4 "0 -1 0"
+"q10" 4 "0 -1 0"
+"p10" 4 "0 -1 0"
+"q11" 4 "0 -1 0"
+"r11" 4 "0 -1 0"
+"s11" 4 "0 -1 0"
+"s10" 4 "0 -1 0"
+"s12" 4 "0 -1 0"
+"r12" 4 "0 -1 0"
+"s13" 4 "0 -1 0"
+"f15" 1 "0 -1 0"
+"q16" 2 "0 -1 0"
+"q15" 2 "0 -1 0"
+"r15" 2 "0 -1 0"
+"r16" 2 "0 -1 0"
+"s16" 2 "0 -1 0"
+"s15" 2 "0 -1 0"
+"s17" 2 "0 -1 0"
+"b9" 2 "0 -1 0"
+"c8" 2 "0 -1 0"
+"n10" 2 "0 -1 0"
+"o11" 2 "0 -1 0"
+"p12" 2 "0 -1 0"
+"q13" 2 "0 -1 0"
+"c15" 3 "0 -1 0"
+"b11" 3 "0 -1 0"
+"c13" 3 "0 -1 0"
+"d11" 3 "0 -1 0"
+"c9" 3 "0 -1 0"
+"j16" 3 "0 -1 0"
+"j14" 3 "0 -1 0"
+"k13" 3 "0 -1 0"
+"j12" 3 "0 -1 0"
+"k11" 3 "0 -1 0"
+"j10" 3 "0 -1 0"
+"n16" 3 "0 -1 0"
+"o13" 3 "0 -1 0"
diff --git a/minigames/bulldozer/storage_level13.txt b/minigames/bulldozer/storage_level13.txt
new file mode 100644 (file)
index 0000000..54f7499
--- /dev/null
@@ -0,0 +1,359 @@
+// bulldozer storage "level13" last updated 11-06-2016 15:20:23
+nextlevel = "level14"
+"a10" 5 "0 -1 0"
+"a8" 5 "0 -1 0"
+"a9" 5 "0 -1 0"
+"a11" 5 "0 -1 0"
+"b11" 5 "0 -1 0"
+"d13" 5 "0 -1 0"
+"c11" 5 "0 -1 0"
+"c12" 5 "0 -1 0"
+"c13" 5 "0 -1 0"
+"e13" 5 "0 -1 0"
+"e14" 5 "0 -1 0"
+"e15" 5 "0 -1 0"
+"e16" 5 "0 -1 0"
+"f16" 5 "0 -1 0"
+"g16" 5 "0 -1 0"
+"h16" 5 "0 -1 0"
+"i16" 5 "0 -1 0"
+"i15" 5 "0 -1 0"
+"i14" 5 "0 -1 0"
+"i13" 5 "0 -1 0"
+"j13" 5 "0 -1 0"
+"j12" 5 "0 -1 0"
+"j11" 5 "0 -1 0"
+"j10" 5 "0 -1 0"
+"k10" 5 "0 -1 0"
+"l10" 5 "0 -1 0"
+"n10" 5 "0 -1 0"
+"m10" 5 "0 -1 0"
+"n11" 5 "0 -1 0"
+"o11" 5 "0 -1 0"
+"p11" 5 "0 -1 0"
+"q11" 5 "0 -1 0"
+"r11" 5 "0 -1 0"
+"s11" 5 "0 -1 0"
+"s10" 5 "0 -1 0"
+"s8" 5 "0 -1 0"
+"s9" 5 "0 -1 0"
+"s7" 5 "0 -1 0"
+"r7" 5 "0 -1 0"
+"q7" 5 "0 -1 0"
+"p7" 5 "0 -1 0"
+"o7" 5 "0 -1 0"
+"n7" 5 "0 -1 0"
+"m7" 5 "0 -1 0"
+"l7" 5 "0 -1 0"
+"k7" 5 "0 -1 0"
+"k8" 5 "0 -1 0"
+"m8" 5 "0 -1 0"
+"n8" 5 "0 -1 0"
+"k6" 5 "0 -1 0"
+"j6" 5 "0 -1 0"
+"i6" 5 "0 -1 0"
+"b8" 5 "0 -1 0"
+"c8" 5 "0 -1 0"
+"d8" 5 "0 -1 0"
+"e8" 5 "0 -1 0"
+"e7" 5 "0 -1 0"
+"e6" 5 "0 -1 0"
+"f6" 5 "0 -1 0"
+"g6" 5 "0 -1 0"
+"h6" 5 "0 -1 0"
+"e11" 8 "0 -1 0"
+"e10" 8 "0 -1 0"
+"g11" 8 "0 -1 0"
+"g10" 8 "0 -1 0"
+"h10" 8 "0 -1 0"
+"h11" 8 "0 -1 0"
+"g8" 8 "0 -1 0"
+"h8" 8 "0 -1 0"
+"i8" 8 "0 -1 0"
+"b15" 8 "0 -1 0"
+"o12" 11 "0 -1 0"
+"n13" 11 "0 -1 0"
+"m14" 11 "0 -1 0"
+"l15" 11 "0 -1 0"
+"k16" 11 "0 -1 0"
+"m16" 11 "0 -1 0"
+"n15" 11 "0 -1 0"
+"o16" 11 "0 -1 0"
+"p15" 11 "0 -1 0"
+"q16" 11 "0 -1 0"
+"r15" 11 "0 -1 0"
+"s16" 11 "0 -1 0"
+"q14" 11 "0 -1 0"
+"p13" 11 "0 -1 0"
+"o14" 11 "0 -1 0"
+"j19" 4 "0 -1 0"
+"i19" 4 "0 -1 0"
+"h19" 4 "0 -1 0"
+"g19" 4 "0 -1 0"
+"f19" 4 "0 -1 0"
+"e19" 4 "0 -1 0"
+"d19" 4 "0 -1 0"
+"c19" 4 "0 -1 0"
+"b19" 4 "0 -1 0"
+"a19" 4 "0 -1 0"
+"a18" 4 "0 -1 0"
+"b18" 4 "0 -1 0"
+"c18" 4 "0 -1 0"
+"d18" 4 "0 -1 0"
+"e18" 4 "0 -1 0"
+"f18" 4 "0 -1 0"
+"g18" 4 "0 -1 0"
+"h18" 4 "0 -1 0"
+"i18" 4 "0 -1 0"
+"j18" 4 "0 -1 0"
+"k18" 4 "0 -1 0"
+"l18" 4 "0 -1 0"
+"m18" 4 "0 -1 0"
+"n18" 4 "0 -1 0"
+"o18" 4 "0 -1 0"
+"p18" 4 "0 -1 0"
+"q18" 4 "0 -1 0"
+"r18" 4 "0 -1 0"
+"s18" 4 "0 -1 0"
+"t18" 4 "0 -1 0"
+"t17" 4 "0 -1 0"
+"s17" 4 "0 -1 0"
+"r17" 4 "0 -1 0"
+"q17" 4 "0 -1 0"
+"p17" 4 "0 -1 0"
+"o17" 4 "0 -1 0"
+"n17" 4 "0 -1 0"
+"m17" 4 "0 -1 0"
+"l17" 4 "0 -1 0"
+"k17" 4 "0 -1 0"
+"j17" 4 "0 -1 0"
+"i17" 4 "0 -1 0"
+"h17" 4 "0 -1 0"
+"g17" 4 "0 -1 0"
+"f17" 4 "0 -1 0"
+"e17" 4 "0 -1 0"
+"d17" 4 "0 -1 0"
+"c17" 4 "0 -1 0"
+"b17" 4 "0 -1 0"
+"a17" 4 "0 -1 0"
+"a16" 4 "0 -1 0"
+"b16" 4 "0 -1 0"
+"c16" 4 "0 -1 0"
+"d16" 4 "0 -1 0"
+"d15" 4 "0 -1 0"
+"c15" 4 "0 -1 0"
+"c14" 4 "0 -1 0"
+"b14" 4 "0 -1 0"
+"a14" 4 "0 -1 0"
+"a13" 4 "0 -1 0"
+"b13" 4 "0 -1 0"
+"b12" 4 "0 -1 0"
+"a12" 4 "0 -1 0"
+"a15" 4 "0 -1 0"
+"d14" 4 "0 -1 0"
+"j16" 4 "0 -1 0"
+"j15" 4 "0 -1 0"
+"k15" 4 "0 -1 0"
+"k14" 4 "0 -1 0"
+"j14" 4 "0 -1 0"
+"l14" 4 "0 -1 0"
+"l13" 4 "0 -1 0"
+"k13" 4 "0 -1 0"
+"k12" 4 "0 -1 0"
+"l12" 4 "0 -1 0"
+"m12" 4 "0 -1 0"
+"n12" 4 "0 -1 0"
+"m11" 4 "0 -1 0"
+"l11" 4 "0 -1 0"
+"k11" 4 "0 -1 0"
+"m13" 4 "0 -1 0"
+"l16" 4 "0 -1 0"
+"n16" 4 "0 -1 0"
+"p16" 4 "0 -1 0"
+"r16" 4 "0 -1 0"
+"t16" 4 "0 -1 0"
+"t15" 4 "0 -1 0"
+"s15" 4 "0 -1 0"
+"s14" 4 "0 -1 0"
+"r14" 4 "0 -1 0"
+"r13" 4 "0 -1 0"
+"q13" 4 "0 -1 0"
+"q12" 4 "0 -1 0"
+"p12" 4 "0 -1 0"
+"r12" 4 "0 -1 0"
+"s12" 4 "0 -1 0"
+"t12" 4 "0 -1 0"
+"t11" 4 "0 -1 0"
+"t10" 4 "0 -1 0"
+"t9" 4 "0 -1 0"
+"t8" 4 "0 -1 0"
+"t7" 4 "0 -1 0"
+"t6" 4 "0 -1 0"
+"s6" 4 "0 -1 0"
+"r6" 4 "0 -1 0"
+"q6" 4 "0 -1 0"
+"p6" 4 "0 -1 0"
+"o6" 4 "0 -1 0"
+"n6" 4 "0 -1 0"
+"m6" 4 "0 -1 0"
+"l6" 4 "0 -1 0"
+"l5" 4 "0 -1 0"
+"k5" 4 "0 -1 0"
+"j5" 4 "0 -1 0"
+"i5" 4 "0 -1 0"
+"h5" 4 "0 -1 0"
+"g5" 4 "0 -1 0"
+"f5" 4 "0 -1 0"
+"e5" 4 "0 -1 0"
+"d5" 4 "0 -1 0"
+"c5" 4 "0 -1 0"
+"b5" 4 "0 -1 0"
+"a5" 4 "0 -1 0"
+"a4" 4 "0 -1 0"
+"b4" 4 "0 -1 0"
+"c4" 4 "0 -1 0"
+"d4" 4 "0 -1 0"
+"e4" 4 "0 -1 0"
+"f4" 4 "0 -1 0"
+"g4" 4 "0 -1 0"
+"h4" 4 "0 -1 0"
+"i4" 4 "0 -1 0"
+"j4" 4 "0 -1 0"
+"k4" 4 "0 -1 0"
+"l4" 4 "0 -1 0"
+"m4" 4 "0 -1 0"
+"n4" 4 "0 -1 0"
+"o4" 4 "0 -1 0"
+"p4" 4 "0 -1 0"
+"q4" 4 "0 -1 0"
+"r4" 4 "0 -1 0"
+"s4" 4 "0 -1 0"
+"t4" 4 "0 -1 0"
+"t3" 4 "0 -1 0"
+"s3" 4 "0 -1 0"
+"r3" 4 "0 -1 0"
+"q3" 4 "0 -1 0"
+"p3" 4 "0 -1 0"
+"o3" 4 "0 -1 0"
+"n3" 4 "0 -1 0"
+"m3" 4 "0 -1 0"
+"l3" 4 "0 -1 0"
+"k3" 4 "0 -1 0"
+"j3" 4 "0 -1 0"
+"i3" 4 "0 -1 0"
+"h3" 4 "0 -1 0"
+"g3" 4 "0 -1 0"
+"f3" 4 "0 -1 0"
+"e3" 4 "0 -1 0"
+"d3" 4 "0 -1 0"
+"c3" 4 "0 -1 0"
+"b3" 4 "0 -1 0"
+"a3" 4 "0 -1 0"
+"a2" 4 "0 -1 0"
+"b2" 4 "0 -1 0"
+"c2" 4 "0 -1 0"
+"d2" 4 "0 -1 0"
+"e2" 4 "0 -1 0"
+"f2" 4 "0 -1 0"
+"g2" 4 "0 -1 0"
+"h2" 4 "0 -1 0"
+"i2" 4 "0 -1 0"
+"j2" 4 "0 -1 0"
+"k2" 4 "0 -1 0"
+"l2" 4 "0 -1 0"
+"m2" 4 "0 -1 0"
+"n2" 4 "0 -1 0"
+"o2" 4 "0 -1 0"
+"p2" 4 "0 -1 0"
+"q2" 4 "0 -1 0"
+"r2" 4 "0 -1 0"
+"s2" 4 "0 -1 0"
+"t2" 4 "0 -1 0"
+"t1" 4 "0 -1 0"
+"s1" 4 "0 -1 0"
+"r1" 4 "0 -1 0"
+"q1" 4 "0 -1 0"
+"p1" 4 "0 -1 0"
+"o1" 4 "0 -1 0"
+"n1" 4 "0 -1 0"
+"m1" 4 "0 -1 0"
+"l1" 4 "0 -1 0"
+"k1" 4 "0 -1 0"
+"j1" 4 "0 -1 0"
+"i1" 4 "0 -1 0"
+"h1" 4 "0 -1 0"
+"g1" 4 "0 -1 0"
+"f1" 4 "0 -1 0"
+"e1" 4 "0 -1 0"
+"d1" 4 "0 -1 0"
+"c1" 4 "0 -1 0"
+"b1" 4 "0 -1 0"
+"a1" 4 "0 -1 0"
+"t5" 4 "0 -1 0"
+"s5" 4 "0 -1 0"
+"r5" 4 "0 -1 0"
+"q5" 4 "0 -1 0"
+"p5" 4 "0 -1 0"
+"o5" 4 "0 -1 0"
+"n5" 4 "0 -1 0"
+"m5" 4 "0 -1 0"
+"a6" 4 "0 -1 0"
+"b6" 4 "0 -1 0"
+"c6" 4 "0 -1 0"
+"d6" 4 "0 -1 0"
+"d7" 4 "0 -1 0"
+"c7" 4 "0 -1 0"
+"b7" 4 "0 -1 0"
+"a7" 4 "0 -1 0"
+"t13" 4 "0 -1 0"
+"s13" 4 "0 -1 0"
+"t14" 4 "0 -1 0"
+"t19" 4 "0 -1 0"
+"s19" 4 "0 -1 0"
+"r19" 4 "0 -1 0"
+"q19" 4 "0 -1 0"
+"p19" 4 "0 -1 0"
+"o19" 4 "0 -1 0"
+"n19" 4 "0 -1 0"
+"m19" 4 "0 -1 0"
+"l19" 4 "0 -1 0"
+"k19" 4 "0 -1 0"
+"k20" 4 "0 -1 0"
+"j20" 4 "0 -1 0"
+"i20" 4 "0 -1 0"
+"h20" 4 "0 -1 0"
+"g20" 4 "0 -1 0"
+"f20" 4 "0 -1 0"
+"e20" 4 "0 -1 0"
+"d20" 4 "0 -1 0"
+"c20" 4 "0 -1 0"
+"b20" 4 "0 -1 0"
+"a20" 4 "0 -1 0"
+"l20" 4 "0 -1 0"
+"m20" 4 "0 -1 0"
+"n20" 4 "0 -1 0"
+"o20" 4 "0 -1 0"
+"p20" 4 "0 -1 0"
+"q20" 4 "0 -1 0"
+"r20" 4 "0 -1 0"
+"s20" 4 "0 -1 0"
+"t20" 4 "0 -1 0"
+"m15" 4 "0 -1 0"
+"o15" 4 "0 -1 0"
+"q15" 4 "0 -1 0"
+"p14" 4 "0 -1 0"
+"o13" 4 "0 -1 0"
+"n14" 4 "0 -1 0"
+"l8" 1 "0 -1 0"
+"r10" 2 "0 -1 0"
+"r9" 2 "0 -1 0"
+"r8" 2 "0 -1 0"
+"q8" 2 "0 -1 0"
+"q9" 2 "0 -1 0"
+"q10" 2 "0 -1 0"
+"c9" 3 "0 -1 0"
+"f9" 3 "0 -1 0"
+"f12" 3 "0 -1 0"
+"f14" 3 "0 -1 0"
+"h13" 3 "0 -1 0"
+"h12" 3 "0 -1 0"
diff --git a/minigames/bulldozer/storage_level14.txt b/minigames/bulldozer/storage_level14.txt
new file mode 100644 (file)
index 0000000..540c31f
--- /dev/null
@@ -0,0 +1,383 @@
+// bulldozer storage "level14" last updated 11-06-2016 15:24:43
+nextlevel = "level15"
+"a20" 10 "0 -1 0"
+"a19" 10 "0 -1 0"
+"a18" 10 "0 -1 0"
+"a17" 10 "0 -1 0"
+"a16" 10 "0 -1 0"
+"a15" 10 "0 -1 0"
+"a14" 10 "0 -1 0"
+"a13" 10 "0 -1 0"
+"a12" 10 "0 -1 0"
+"a11" 10 "0 -1 0"
+"a10" 10 "0 -1 0"
+"a9" 10 "0 -1 0"
+"a8" 10 "0 -1 0"
+"a7" 10 "0 -1 0"
+"a6" 10 "0 -1 0"
+"a5" 10 "0 -1 0"
+"a4" 10 "0 -1 0"
+"a3" 10 "0 -1 0"
+"a2" 10 "0 -1 0"
+"a1" 10 "0 -1 0"
+"t20" 10 "0 -1 0"
+"t19" 10 "0 -1 0"
+"t18" 10 "0 -1 0"
+"t17" 10 "0 -1 0"
+"t16" 10 "0 -1 0"
+"t15" 10 "0 -1 0"
+"t13" 10 "0 -1 0"
+"t12" 10 "0 -1 0"
+"t11" 10 "0 -1 0"
+"t10" 10 "0 -1 0"
+"t9" 10 "0 -1 0"
+"t8" 10 "0 -1 0"
+"t7" 10 "0 -1 0"
+"t6" 10 "0 -1 0"
+"t5" 10 "0 -1 0"
+"t4" 10 "0 -1 0"
+"t2" 10 "0 -1 0"
+"t1" 10 "0 -1 0"
+"t3" 10 "0 -1 0"
+"t14" 10 "0 -1 0"
+"c17" 5 "0 -1 0"
+"d17" 5 "0 -1 0"
+"d16" 5 "0 -1 0"
+"c16" 5 "0 -1 0"
+"c15" 5 "0 -1 0"
+"c14" 5 "0 -1 0"
+"c13" 5 "0 -1 0"
+"c12" 5 "0 -1 0"
+"c11" 5 "0 -1 0"
+"c10" 5 "0 -1 0"
+"c9" 5 "0 -1 0"
+"c8" 5 "0 -1 0"
+"d15" 5 "0 -1 0"
+"d14" 5 "0 -1 0"
+"d13" 5 "0 -1 0"
+"d12" 5 "0 -1 0"
+"d11" 5 "0 -1 0"
+"d10" 5 "0 -1 0"
+"d8" 5 "0 -1 0"
+"f9" 5 "0 -1 0"
+"d9" 5 "0 -1 0"
+"f10" 5 "0 -1 0"
+"f11" 5 "0 -1 0"
+"g11" 5 "0 -1 0"
+"h11" 5 "0 -1 0"
+"h12" 5 "0 -1 0"
+"h13" 5 "0 -1 0"
+"h14" 5 "0 -1 0"
+"h15" 5 "0 -1 0"
+"i15" 5 "0 -1 0"
+"j16" 5 "0 -1 0"
+"i16" 5 "0 -1 0"
+"k16" 5 "0 -1 0"
+"l16" 5 "0 -1 0"
+"m16" 5 "0 -1 0"
+"n16" 5 "0 -1 0"
+"o16" 5 "0 -1 0"
+"o15" 5 "0 -1 0"
+"o14" 5 "0 -1 0"
+"o13" 5 "0 -1 0"
+"o12" 5 "0 -1 0"
+"o11" 5 "0 -1 0"
+"q17" 5 "0 -1 0"
+"q16" 5 "0 -1 0"
+"q15" 5 "0 -1 0"
+"q14" 5 "0 -1 0"
+"q13" 5 "0 -1 0"
+"q11" 5 "0 -1 0"
+"q10" 5 "0 -1 0"
+"q9" 5 "0 -1 0"
+"q8" 5 "0 -1 0"
+"r8" 5 "0 -1 0"
+"q12" 5 "0 -1 0"
+"r9" 5 "0 -1 0"
+"r10" 5 "0 -1 0"
+"r11" 5 "0 -1 0"
+"r13" 5 "0 -1 0"
+"r14" 5 "0 -1 0"
+"r15" 5 "0 -1 0"
+"r16" 5 "0 -1 0"
+"r17" 5 "0 -1 0"
+"r12" 5 "0 -1 0"
+"n11" 5 "0 -1 0"
+"n10" 5 "0 -1 0"
+"n9" 5 "0 -1 0"
+"m9" 5 "0 -1 0"
+"k9" 5 "0 -1 0"
+"i9" 5 "0 -1 0"
+"h9" 5 "0 -1 0"
+"g9" 5 "0 -1 0"
+"j9" 5 "0 -1 0"
+"l9" 5 "0 -1 0"
+"l11" 5 "0 -1 0"
+"l12" 5 "0 -1 0"
+"k12" 5 "0 -1 0"
+"l15" 5 "0 -1 0"
+"l14" 5 "0 -1 0"
+"n15" 1 "0 -1 0"
+"g10" 2 "0 -1 0"
+"h10" 2 "0 -1 0"
+"i10" 2 "0 -1 0"
+"j10" 2 "0 -1 0"
+"k10" 2 "0 -1 0"
+"j11" 3 "0 -1 0"
+"j12" 3 "0 -1 0"
+"k13" 3 "0 -1 0"
+"i13" 3 "0 -1 0"
+"m13" 3 "0 -1 0"
+"k6" 4 "0 -1 0"
+"j6" 4 "0 -1 0"
+"i6" 4 "0 -1 0"
+"h6" 4 "0 -1 0"
+"g6" 4 "0 -1 0"
+"f6" 4 "0 -1 0"
+"e6" 4 "0 -1 0"
+"d6" 4 "0 -1 0"
+"c6" 4 "0 -1 0"
+"b6" 4 "0 -1 0"
+"b5" 4 "0 -1 0"
+"c5" 4 "0 -1 0"
+"d5" 4 "0 -1 0"
+"e5" 4 "0 -1 0"
+"f5" 4 "0 -1 0"
+"g5" 4 "0 -1 0"
+"h5" 4 "0 -1 0"
+"i5" 4 "0 -1 0"
+"j5" 4 "0 -1 0"
+"k5" 4 "0 -1 0"
+"l5" 4 "0 -1 0"
+"m5" 4 "0 -1 0"
+"n5" 4 "0 -1 0"
+"o5" 4 "0 -1 0"
+"p5" 4 "0 -1 0"
+"q5" 4 "0 -1 0"
+"r5" 4 "0 -1 0"
+"s5" 4 "0 -1 0"
+"s4" 4 "0 -1 0"
+"r4" 4 "0 -1 0"
+"q4" 4 "0 -1 0"
+"p4" 4 "0 -1 0"
+"o4" 4 "0 -1 0"
+"n4" 4 "0 -1 0"
+"m4" 4 "0 -1 0"
+"l4" 4 "0 -1 0"
+"k4" 4 "0 -1 0"
+"j4" 4 "0 -1 0"
+"i4" 4 "0 -1 0"
+"h4" 4 "0 -1 0"
+"g4" 4 "0 -1 0"
+"f4" 4 "0 -1 0"
+"e4" 4 "0 -1 0"
+"d4" 4 "0 -1 0"
+"c4" 4 "0 -1 0"
+"b4" 4 "0 -1 0"
+"b3" 4 "0 -1 0"
+"c3" 4 "0 -1 0"
+"d3" 4 "0 -1 0"
+"e3" 4 "0 -1 0"
+"f3" 4 "0 -1 0"
+"g3" 4 "0 -1 0"
+"h3" 4 "0 -1 0"
+"i3" 4 "0 -1 0"
+"j3" 4 "0 -1 0"
+"k3" 4 "0 -1 0"
+"l3" 4 "0 -1 0"
+"m3" 4 "0 -1 0"
+"n3" 4 "0 -1 0"
+"o3" 4 "0 -1 0"
+"p3" 4 "0 -1 0"
+"q3" 4 "0 -1 0"
+"r3" 4 "0 -1 0"
+"s3" 4 "0 -1 0"
+"s2" 4 "0 -1 0"
+"r2" 4 "0 -1 0"
+"q2" 4 "0 -1 0"
+"p2" 4 "0 -1 0"
+"o2" 4 "0 -1 0"
+"n2" 4 "0 -1 0"
+"m2" 4 "0 -1 0"
+"l2" 4 "0 -1 0"
+"k2" 4 "0 -1 0"
+"j2" 4 "0 -1 0"
+"i2" 4 "0 -1 0"
+"h2" 4 "0 -1 0"
+"g2" 4 "0 -1 0"
+"f2" 4 "0 -1 0"
+"e2" 4 "0 -1 0"
+"d2" 4 "0 -1 0"
+"c2" 4 "0 -1 0"
+"b2" 4 "0 -1 0"
+"b1" 4 "0 -1 0"
+"c1" 4 "0 -1 0"
+"d1" 4 "0 -1 0"
+"e1" 4 "0 -1 0"
+"f1" 4 "0 -1 0"
+"g1" 4 "0 -1 0"
+"h1" 4 "0 -1 0"
+"i1" 4 "0 -1 0"
+"j1" 4 "0 -1 0"
+"k1" 4 "0 -1 0"
+"l1" 4 "0 -1 0"
+"m1" 4 "0 -1 0"
+"n1" 4 "0 -1 0"
+"o1" 4 "0 -1 0"
+"p1" 4 "0 -1 0"
+"q1" 4 "0 -1 0"
+"r1" 4 "0 -1 0"
+"s1" 4 "0 -1 0"
+"s6" 4 "0 -1 0"
+"r6" 4 "0 -1 0"
+"q6" 4 "0 -1 0"
+"p6" 4 "0 -1 0"
+"o6" 4 "0 -1 0"
+"n6" 4 "0 -1 0"
+"m6" 4 "0 -1 0"
+"l6" 4 "0 -1 0"
+"l7" 4 "0 -1 0"
+"k7" 4 "0 -1 0"
+"j7" 4 "0 -1 0"
+"i7" 4 "0 -1 0"
+"h7" 4 "0 -1 0"
+"g7" 4 "0 -1 0"
+"f7" 4 "0 -1 0"
+"e7" 4 "0 -1 0"
+"d7" 4 "0 -1 0"
+"c7" 4 "0 -1 0"
+"b7" 4 "0 -1 0"
+"b8" 4 "0 -1 0"
+"b9" 4 "0 -1 0"
+"b10" 4 "0 -1 0"
+"b11" 4 "0 -1 0"
+"b12" 4 "0 -1 0"
+"b13" 4 "0 -1 0"
+"b14" 4 "0 -1 0"
+"b15" 4 "0 -1 0"
+"b16" 4 "0 -1 0"
+"b17" 4 "0 -1 0"
+"b18" 4 "0 -1 0"
+"c18" 4 "0 -1 0"
+"d18" 4 "0 -1 0"
+"e18" 4 "0 -1 0"
+"f18" 4 "0 -1 0"
+"g18" 4 "0 -1 0"
+"h18" 4 "0 -1 0"
+"i18" 4 "0 -1 0"
+"j18" 4 "0 -1 0"
+"k18" 4 "0 -1 0"
+"l18" 4 "0 -1 0"
+"m18" 4 "0 -1 0"
+"n18" 4 "0 -1 0"
+"o18" 4 "0 -1 0"
+"p18" 4 "0 -1 0"
+"q18" 4 "0 -1 0"
+"r18" 4 "0 -1 0"
+"s18" 4 "0 -1 0"
+"s17" 4 "0 -1 0"
+"s16" 4 "0 -1 0"
+"s15" 4 "0 -1 0"
+"s14" 4 "0 -1 0"
+"s13" 4 "0 -1 0"
+"s12" 4 "0 -1 0"
+"s11" 4 "0 -1 0"
+"s10" 4 "0 -1 0"
+"s9" 4 "0 -1 0"
+"s8" 4 "0 -1 0"
+"s7" 4 "0 -1 0"
+"r7" 4 "0 -1 0"
+"q7" 4 "0 -1 0"
+"p7" 4 "0 -1 0"
+"o7" 4 "0 -1 0"
+"n7" 4 "0 -1 0"
+"m7" 4 "0 -1 0"
+"m8" 4 "0 -1 0"
+"l8" 4 "0 -1 0"
+"k8" 4 "0 -1 0"
+"j8" 4 "0 -1 0"
+"i8" 4 "0 -1 0"
+"h8" 4 "0 -1 0"
+"g8" 4 "0 -1 0"
+"f8" 4 "0 -1 0"
+"e8" 4 "0 -1 0"
+"e9" 4 "0 -1 0"
+"e10" 4 "0 -1 0"
+"e11" 4 "0 -1 0"
+"e12" 4 "0 -1 0"
+"f12" 4 "0 -1 0"
+"g12" 4 "0 -1 0"
+"g13" 4 "0 -1 0"
+"f13" 4 "0 -1 0"
+"e13" 4 "0 -1 0"
+"e14" 4 "0 -1 0"
+"f14" 4 "0 -1 0"
+"g14" 4 "0 -1 0"
+"g15" 4 "0 -1 0"
+"f15" 4 "0 -1 0"
+"e15" 4 "0 -1 0"
+"e16" 4 "0 -1 0"
+"f16" 4 "0 -1 0"
+"g16" 4 "0 -1 0"
+"h16" 4 "0 -1 0"
+"h17" 4 "0 -1 0"
+"g17" 4 "0 -1 0"
+"f17" 4 "0 -1 0"
+"e17" 4 "0 -1 0"
+"i17" 4 "0 -1 0"
+"j17" 4 "0 -1 0"
+"k17" 4 "0 -1 0"
+"l17" 4 "0 -1 0"
+"m17" 4 "0 -1 0"
+"n17" 4 "0 -1 0"
+"o17" 4 "0 -1 0"
+"p17" 4 "0 -1 0"
+"p16" 4 "0 -1 0"
+"p15" 4 "0 -1 0"
+"p14" 4 "0 -1 0"
+"p13" 4 "0 -1 0"
+"p12" 4 "0 -1 0"
+"p11" 4 "0 -1 0"
+"p10" 4 "0 -1 0"
+"o10" 4 "0 -1 0"
+"o9" 4 "0 -1 0"
+"p9" 4 "0 -1 0"
+"p8" 4 "0 -1 0"
+"o8" 4 "0 -1 0"
+"n8" 4 "0 -1 0"
+"s19" 4 "0 -1 0"
+"r19" 4 "0 -1 0"
+"q19" 4 "0 -1 0"
+"p19" 4 "0 -1 0"
+"o19" 4 "0 -1 0"
+"n19" 4 "0 -1 0"
+"m19" 4 "0 -1 0"
+"l19" 4 "0 -1 0"
+"k19" 4 "0 -1 0"
+"j19" 4 "0 -1 0"
+"i19" 4 "0 -1 0"
+"h19" 4 "0 -1 0"
+"g19" 4 "0 -1 0"
+"f19" 4 "0 -1 0"
+"e19" 4 "0 -1 0"
+"d19" 4 "0 -1 0"
+"c19" 4 "0 -1 0"
+"b19" 4 "0 -1 0"
+"b20" 4 "0 -1 0"
+"c20" 4 "0 -1 0"
+"d20" 4 "0 -1 0"
+"e20" 4 "0 -1 0"
+"f20" 4 "0 -1 0"
+"g20" 4 "0 -1 0"
+"h20" 4 "0 -1 0"
+"i20" 4 "0 -1 0"
+"j20" 4 "0 -1 0"
+"k20" 4 "0 -1 0"
+"l20" 4 "0 -1 0"
+"m20" 4 "0 -1 0"
+"n20" 4 "0 -1 0"
+"o20" 4 "0 -1 0"
+"p20" 4 "0 -1 0"
+"q20" 4 "0 -1 0"
+"r20" 4 "0 -1 0"
+"s20" 4 "0 -1 0"
diff --git a/minigames/bulldozer/storage_level15.txt b/minigames/bulldozer/storage_level15.txt
new file mode 100644 (file)
index 0000000..8a2d856
--- /dev/null
@@ -0,0 +1,307 @@
+// bulldozer storage "ending" last updated 16-11-2015 04:16:07
+nextlevel = "level1"
+"e15" 3 "0 0 0"
+"f14" 3 "0 0 0"
+"g13" 3 "0 0 0"
+"k13" 3 "0 0 0"
+"b14" 4 "0 0 0"
+"a14" 4 "0 0 0"
+"a13" 4 "0 0 0"
+"b13" 4 "0 0 0"
+"i13" 3 "0 0 0"
+"m13" 3 "0 0 0"
+"n14" 3 "0 0 0"
+"o15" 3 "0 0 0"
+"h17" 2 "0 0 0"
+"l17" 2 "0 0 0"
+"c12" 2 "0 0 0"
+"c13" 2 "0 0 0"
+"c14" 2 "0 0 0"
+"r14" 2 "0 0 0"
+"r13" 2 "0 0 0"
+"r12" 2 "0 0 0"
+"j15" 1 "0 -1 0"
+"s13" 4 "0 0 0"
+"t13" 4 "0 0 0"
+"t12" 4 "0 0 0"
+"s12" 4 "0 0 0"
+"b12" 4 "0 0 0"
+"a12" 4 "0 0 0"
+"a11" 4 "0 0 0"
+"b11" 4 "0 0 0"
+"c11" 4 "0 0 0"
+"d11" 4 "0 0 0"
+"e11" 4 "0 0 0"
+"f11" 4 "0 0 0"
+"g11" 4 "0 0 0"
+"h11" 4 "0 0 0"
+"i11" 4 "0 0 0"
+"j11" 4 "0 0 0"
+"k11" 4 "0 0 0"
+"l11" 4 "0 0 0"
+"m11" 4 "0 0 0"
+"n11" 4 "0 0 0"
+"o11" 4 "0 0 0"
+"p11" 4 "0 0 0"
+"q11" 4 "0 0 0"
+"r11" 4 "0 0 0"
+"s11" 4 "0 0 0"
+"t11" 4 "0 0 0"
+"t6" 6 "0 0 0"
+"s10" 4 "0 0 0"
+"r10" 4 "0 0 0"
+"q10" 4 "0 0 0"
+"b10" 6 "0 0 0"
+"o10" 4 "0 0 0"
+"c10" 6 "0 0 0"
+"d10" 6 "0 0 0"
+"e6" 4 "0 0 0"
+"b9" 6 "0 0 0"
+"b8" 6 "0 0 0"
+"c7" 4 "0 0 0"
+"b7" 6 "0 0 0"
+"b6" 6 "0 0 0"
+"c6" 6 "0 0 0"
+"d6" 6 "0 0 0"
+"f10" 6 "0 0 0"
+"g10" 6 "0 0 0"
+"h10" 6 "0 0 0"
+"a10" 4 "0 0 0"
+"a9" 4 "0 0 0"
+"h9" 4 "0 0 0"
+"c9" 4 "0 0 0"
+"d9" 4 "0 0 0"
+"h8" 4 "0 0 0"
+"h7" 4 "0 0 0"
+"i10" 6 "0 0 0"
+"i9" 6 "0 0 0"
+"j7" 4 "0 0 0"
+"j6" 4 "0 0 0"
+"j10" 4 "0 0 0"
+"i8" 6 "0 0 0"
+"m9" 4 "0 0 0"
+"i7" 6 "0 0 0"
+"o9" 4 "0 0 0"
+"i6" 6 "0 0 0"
+"q9" 4 "0 0 0"
+"r9" 4 "0 0 0"
+"s9" 4 "0 0 0"
+"h6" 6 "0 0 0"
+"g6" 6 "0 0 0"
+"s8" 4 "0 0 0"
+"r8" 4 "0 0 0"
+"q8" 4 "0 0 0"
+"f6" 6 "0 0 0"
+"o8" 4 "0 0 0"
+"f7" 6 "0 0 0"
+"m8" 4 "0 0 0"
+"f8" 6 "0 0 0"
+"f9" 6 "0 0 0"
+"k10" 6 "0 0 0"
+"e10" 4 "0 0 0"
+"d7" 4 "0 0 0"
+"e9" 4 "0 0 0"
+"e8" 4 "0 0 0"
+"e7" 4 "0 0 0"
+"l10" 6 "0 0 0"
+"c8" 4 "0 0 0"
+"m10" 6 "0 0 0"
+"a8" 4 "0 0 0"
+"a7" 4 "0 0 0"
+"g7" 4 "0 0 0"
+"g8" 4 "0 0 0"
+"g9" 4 "0 0 0"
+"n10" 6 "0 0 0"
+"n9" 6 "0 0 0"
+"n8" 6 "0 0 0"
+"d8" 4 "0 0 0"
+"n7" 6 "0 0 0"
+"n6" 6 "0 0 0"
+"m6" 6 "0 0 0"
+"l6" 6 "0 0 0"
+"m7" 4 "0 0 0"
+"k6" 6 "0 0 0"
+"o7" 4 "0 0 0"
+"k7" 6 "0 0 0"
+"q7" 4 "0 0 0"
+"r7" 4 "0 0 0"
+"s7" 4 "0 0 0"
+"k8" 6 "0 0 0"
+"k9" 6 "0 0 0"
+"s6" 4 "0 0 0"
+"p9" 6 "0 0 0"
+"p8" 6 "0 0 0"
+"p7" 6 "0 0 0"
+"o6" 4 "0 0 0"
+"p6" 6 "0 0 0"
+"q6" 6 "0 0 0"
+"r6" 6 "0 0 0"
+"p10" 6 "0 0 0"
+"j9" 4 "0 0 0"
+"j8" 4 "0 0 0"
+"t10" 6 "0 0 0"
+"t9" 6 "0 0 0"
+"t8" 6 "0 0 0"
+"l7" 4 "0 0 0"
+"l8" 4 "0 0 0"
+"l9" 4 "0 0 0"
+"t7" 4 "0 0 0"
+"a6" 4 "0 0 0"
+"a5" 4 "0 0 0"
+"b5" 4 "0 0 0"
+"c5" 4 "0 0 0"
+"d5" 4 "0 0 0"
+"e5" 4 "0 0 0"
+"f5" 4 "0 0 0"
+"g5" 4 "0 0 0"
+"h5" 4 "0 0 0"
+"i5" 4 "0 0 0"
+"j5" 4 "0 0 0"
+"k5" 4 "0 0 0"
+"l5" 4 "0 0 0"
+"m5" 4 "0 0 0"
+"n5" 4 "0 0 0"
+"o5" 4 "0 0 0"
+"p5" 4 "0 0 0"
+"q5" 4 "0 0 0"
+"r5" 4 "0 0 0"
+"s5" 4 "0 0 0"
+"t5" 4 "0 0 0"
+"t4" 4 "0 0 0"
+"s4" 4 "0 0 0"
+"r4" 4 "0 0 0"
+"q4" 4 "0 0 0"
+"p4" 4 "0 0 0"
+"o4" 4 "0 0 0"
+"n4" 4 "0 0 0"
+"m4" 4 "0 0 0"
+"l4" 4 "0 0 0"
+"k4" 4 "0 0 0"
+"j4" 4 "0 0 0"
+"i4" 4 "0 0 0"
+"h4" 4 "0 0 0"
+"g4" 4 "0 0 0"
+"f4" 4 "0 0 0"
+"e4" 4 "0 0 0"
+"d4" 4 "0 0 0"
+"c4" 4 "0 0 0"
+"b4" 4 "0 0 0"
+"a4" 4 "0 0 0"
+"a3" 4 "0 0 0"
+"b3" 4 "0 0 0"
+"c3" 4 "0 0 0"
+"d3" 4 "0 0 0"
+"e3" 4 "0 0 0"
+"f3" 4 "0 0 0"
+"g3" 4 "0 0 0"
+"h3" 4 "0 0 0"
+"i3" 4 "0 0 0"
+"j3" 4 "0 0 0"
+"k3" 4 "0 0 0"
+"l3" 4 "0 0 0"
+"m3" 4 "0 0 0"
+"n3" 4 "0 0 0"
+"o3" 4 "0 0 0"
+"p3" 4 "0 0 0"
+"q3" 4 "0 0 0"
+"r3" 4 "0 0 0"
+"s3" 4 "0 0 0"
+"t3" 4 "0 0 0"
+"t2" 4 "0 0 0"
+"s2" 4 "0 0 0"
+"r2" 4 "0 0 0"
+"q2" 4 "0 0 0"
+"p2" 4 "0 0 0"
+"o2" 4 "0 0 0"
+"n2" 4 "0 0 0"
+"m2" 4 "0 0 0"
+"l2" 4 "0 0 0"
+"k2" 4 "0 0 0"
+"j2" 4 "0 0 0"
+"i2" 4 "0 0 0"
+"h2" 4 "0 0 0"
+"g2" 4 "0 0 0"
+"f2" 4 "0 0 0"
+"e2" 4 "0 0 0"
+"d2" 4 "0 0 0"
+"c2" 4 "0 0 0"
+"b2" 4 "0 0 0"
+"a2" 4 "0 0 0"
+"a1" 4 "0 0 0"
+"b1" 4 "0 0 0"
+"c1" 4 "0 0 0"
+"d1" 4 "0 0 0"
+"e1" 4 "0 0 0"
+"f1" 4 "0 0 0"
+"g1" 4 "0 0 0"
+"h1" 4 "0 0 0"
+"i1" 4 "0 0 0"
+"j1" 4 "0 0 0"
+"k1" 4 "0 0 0"
+"l1" 4 "0 0 0"
+"m1" 4 "0 0 0"
+"n1" 4 "0 0 0"
+"o1" 4 "0 0 0"
+"p1" 4 "0 0 0"
+"q1" 4 "0 0 0"
+"r1" 4 "0 0 0"
+"s1" 4 "0 0 0"
+"t1" 4 "0 0 0"
+"t14" 4 "0 0 0"
+"s14" 4 "0 0 0"
+"b15" 4 "0 0 0"
+"a15" 4 "0 0 0"
+"a16" 4 "0 0 0"
+"b16" 4 "0 0 0"
+"s16" 4 "0 0 0"
+"t16" 4 "0 0 0"
+"t15" 4 "0 0 0"
+"s15" 4 "0 0 0"
+"t17" 4 "0 0 0"
+"s17" 4 "0 0 0"
+"b17" 4 "0 0 0"
+"a17" 4 "0 0 0"
+"a18" 4 "0 0 0"
+"b18" 4 "0 0 0"
+"s18" 4 "0 0 0"
+"t18" 4 "0 0 0"
+"t19" 4 "0 0 0"
+"s19" 4 "0 0 0"
+"r19" 4 "0 0 0"
+"q19" 4 "0 0 0"
+"p19" 4 "0 0 0"
+"o19" 4 "0 0 0"
+"n19" 4 "0 0 0"
+"m19" 4 "0 0 0"
+"l19" 4 "0 0 0"
+"k19" 4 "0 0 0"
+"j19" 4 "0 0 0"
+"i19" 4 "0 0 0"
+"h19" 4 "0 0 0"
+"g19" 4 "0 0 0"
+"f19" 4 "0 0 0"
+"e19" 4 "0 0 0"
+"d19" 4 "0 0 0"
+"c19" 4 "0 0 0"
+"b19" 4 "0 0 0"
+"a19" 4 "0 0 0"
+"a20" 4 "0 0 0"
+"b20" 4 "0 0 0"
+"c20" 4 "0 0 0"
+"d20" 4 "0 0 0"
+"e20" 4 "0 0 0"
+"f20" 4 "0 0 0"
+"g20" 4 "0 0 0"
+"h20" 4 "0 0 0"
+"i20" 4 "0 0 0"
+"j20" 4 "0 0 0"
+"k20" 4 "0 0 0"
+"l20" 4 "0 0 0"
+"m20" 4 "0 0 0"
+"n20" 4 "0 0 0"
+"o20" 4 "0 0 0"
+"p20" 4 "0 0 0"
+"q20" 4 "0 0 0"
+"r20" 4 "0 0 0"
+"s20" 4 "0 0 0"
+"t20" 4 "0 0 0"
index 42e3186cd7aecdd591bc90aa3841efe4a1a33398..676e4baa1514902efc7bfa4459e9b9e881b86252 100644 (file)
-// bulldozer storage "level4" last updated 16-11-2015 04:16:07
-nextlevel = "level1"
-"e15" 3 "0 0 0"
-"f14" 3 "0 0 0"
-"g13" 3 "0 0 0"
-"k13" 3 "0 0 0"
-"b14" 4 "0 0 0"
-"a14" 4 "0 0 0"
-"a13" 4 "0 0 0"
-"b13" 4 "0 0 0"
-"i13" 3 "0 0 0"
-"m13" 3 "0 0 0"
-"n14" 3 "0 0 0"
-"o15" 3 "0 0 0"
-"h17" 2 "0 0 0"
-"l17" 2 "0 0 0"
-"c12" 2 "0 0 0"
-"c13" 2 "0 0 0"
-"c14" 2 "0 0 0"
-"r14" 2 "0 0 0"
-"r13" 2 "0 0 0"
-"r12" 2 "0 0 0"
-"j15" 1 "0 -1 0"
-"s13" 4 "0 0 0"
-"t13" 4 "0 0 0"
-"t12" 4 "0 0 0"
-"s12" 4 "0 0 0"
-"b12" 4 "0 0 0"
-"a12" 4 "0 0 0"
-"a11" 4 "0 0 0"
-"b11" 4 "0 0 0"
-"c11" 4 "0 0 0"
-"d11" 4 "0 0 0"
-"e11" 4 "0 0 0"
-"f11" 4 "0 0 0"
-"g11" 4 "0 0 0"
-"h11" 4 "0 0 0"
-"i11" 4 "0 0 0"
-"j11" 4 "0 0 0"
-"k11" 4 "0 0 0"
-"l11" 4 "0 0 0"
-"m11" 4 "0 0 0"
-"n11" 4 "0 0 0"
-"o11" 4 "0 0 0"
-"p11" 4 "0 0 0"
-"q11" 4 "0 0 0"
-"r11" 4 "0 0 0"
-"s11" 4 "0 0 0"
-"t11" 4 "0 0 0"
-"t6" 6 "0 0 0"
-"s10" 4 "0 0 0"
-"r10" 4 "0 0 0"
-"q10" 4 "0 0 0"
-"b10" 6 "0 0 0"
-"o10" 4 "0 0 0"
-"c10" 6 "0 0 0"
-"d10" 6 "0 0 0"
-"e6" 4 "0 0 0"
-"b9" 6 "0 0 0"
-"b8" 6 "0 0 0"
-"c7" 4 "0 0 0"
-"b7" 6 "0 0 0"
-"b6" 6 "0 0 0"
-"c6" 6 "0 0 0"
-"d6" 6 "0 0 0"
-"f10" 6 "0 0 0"
-"g10" 6 "0 0 0"
-"h10" 6 "0 0 0"
-"a10" 4 "0 0 0"
-"a9" 4 "0 0 0"
-"h9" 4 "0 0 0"
-"c9" 4 "0 0 0"
-"d9" 4 "0 0 0"
-"h8" 4 "0 0 0"
-"h7" 4 "0 0 0"
-"i10" 6 "0 0 0"
-"i9" 6 "0 0 0"
-"j7" 4 "0 0 0"
-"j6" 4 "0 0 0"
-"j10" 4 "0 0 0"
-"i8" 6 "0 0 0"
-"m9" 4 "0 0 0"
-"i7" 6 "0 0 0"
-"o9" 4 "0 0 0"
-"i6" 6 "0 0 0"
-"q9" 4 "0 0 0"
-"r9" 4 "0 0 0"
-"s9" 4 "0 0 0"
-"h6" 6 "0 0 0"
-"g6" 6 "0 0 0"
-"s8" 4 "0 0 0"
-"r8" 4 "0 0 0"
-"q8" 4 "0 0 0"
-"f6" 6 "0 0 0"
-"o8" 4 "0 0 0"
-"f7" 6 "0 0 0"
-"m8" 4 "0 0 0"
-"f8" 6 "0 0 0"
-"f9" 6 "0 0 0"
-"k10" 6 "0 0 0"
-"e10" 4 "0 0 0"
-"d7" 4 "0 0 0"
-"e9" 4 "0 0 0"
-"e8" 4 "0 0 0"
-"e7" 4 "0 0 0"
-"l10" 6 "0 0 0"
-"c8" 4 "0 0 0"
-"m10" 6 "0 0 0"
-"a8" 4 "0 0 0"
-"a7" 4 "0 0 0"
-"g7" 4 "0 0 0"
-"g8" 4 "0 0 0"
-"g9" 4 "0 0 0"
-"n10" 6 "0 0 0"
-"n9" 6 "0 0 0"
-"n8" 6 "0 0 0"
-"d8" 4 "0 0 0"
-"n7" 6 "0 0 0"
-"n6" 6 "0 0 0"
-"m6" 6 "0 0 0"
-"l6" 6 "0 0 0"
-"m7" 4 "0 0 0"
-"k6" 6 "0 0 0"
-"o7" 4 "0 0 0"
-"k7" 6 "0 0 0"
-"q7" 4 "0 0 0"
-"r7" 4 "0 0 0"
-"s7" 4 "0 0 0"
-"k8" 6 "0 0 0"
-"k9" 6 "0 0 0"
-"s6" 4 "0 0 0"
-"p9" 6 "0 0 0"
-"p8" 6 "0 0 0"
-"p7" 6 "0 0 0"
-"o6" 4 "0 0 0"
-"p6" 6 "0 0 0"
-"q6" 6 "0 0 0"
-"r6" 6 "0 0 0"
-"p10" 6 "0 0 0"
-"j9" 4 "0 0 0"
-"j8" 4 "0 0 0"
-"t10" 6 "0 0 0"
-"t9" 6 "0 0 0"
-"t8" 6 "0 0 0"
-"l7" 4 "0 0 0"
-"l8" 4 "0 0 0"
-"l9" 4 "0 0 0"
-"t7" 4 "0 0 0"
-"a6" 4 "0 0 0"
-"a5" 4 "0 0 0"
-"b5" 4 "0 0 0"
-"c5" 4 "0 0 0"
-"d5" 4 "0 0 0"
-"e5" 4 "0 0 0"
-"f5" 4 "0 0 0"
-"g5" 4 "0 0 0"
-"h5" 4 "0 0 0"
-"i5" 4 "0 0 0"
-"j5" 4 "0 0 0"
-"k5" 4 "0 0 0"
-"l5" 4 "0 0 0"
-"m5" 4 "0 0 0"
-"n5" 4 "0 0 0"
-"o5" 4 "0 0 0"
-"p5" 4 "0 0 0"
-"q5" 4 "0 0 0"
-"r5" 4 "0 0 0"
-"s5" 4 "0 0 0"
-"t5" 4 "0 0 0"
-"t4" 4 "0 0 0"
-"s4" 4 "0 0 0"
-"r4" 4 "0 0 0"
-"q4" 4 "0 0 0"
-"p4" 4 "0 0 0"
-"o4" 4 "0 0 0"
-"n4" 4 "0 0 0"
-"m4" 4 "0 0 0"
-"l4" 4 "0 0 0"
-"k4" 4 "0 0 0"
-"j4" 4 "0 0 0"
-"i4" 4 "0 0 0"
-"h4" 4 "0 0 0"
-"g4" 4 "0 0 0"
-"f4" 4 "0 0 0"
-"e4" 4 "0 0 0"
-"d4" 4 "0 0 0"
-"c4" 4 "0 0 0"
-"b4" 4 "0 0 0"
-"a4" 4 "0 0 0"
-"a3" 4 "0 0 0"
-"b3" 4 "0 0 0"
-"c3" 4 "0 0 0"
-"d3" 4 "0 0 0"
-"e3" 4 "0 0 0"
-"f3" 4 "0 0 0"
-"g3" 4 "0 0 0"
-"h3" 4 "0 0 0"
-"i3" 4 "0 0 0"
-"j3" 4 "0 0 0"
-"k3" 4 "0 0 0"
-"l3" 4 "0 0 0"
-"m3" 4 "0 0 0"
-"n3" 4 "0 0 0"
-"o3" 4 "0 0 0"
-"p3" 4 "0 0 0"
-"q3" 4 "0 0 0"
-"r3" 4 "0 0 0"
-"s3" 4 "0 0 0"
-"t3" 4 "0 0 0"
-"t2" 4 "0 0 0"
-"s2" 4 "0 0 0"
-"r2" 4 "0 0 0"
-"q2" 4 "0 0 0"
-"p2" 4 "0 0 0"
-"o2" 4 "0 0 0"
-"n2" 4 "0 0 0"
-"m2" 4 "0 0 0"
-"l2" 4 "0 0 0"
-"k2" 4 "0 0 0"
-"j2" 4 "0 0 0"
-"i2" 4 "0 0 0"
-"h2" 4 "0 0 0"
-"g2" 4 "0 0 0"
-"f2" 4 "0 0 0"
-"e2" 4 "0 0 0"
-"d2" 4 "0 0 0"
-"c2" 4 "0 0 0"
-"b2" 4 "0 0 0"
-"a2" 4 "0 0 0"
-"a1" 4 "0 0 0"
-"b1" 4 "0 0 0"
-"c1" 4 "0 0 0"
-"d1" 4 "0 0 0"
-"e1" 4 "0 0 0"
-"f1" 4 "0 0 0"
-"g1" 4 "0 0 0"
-"h1" 4 "0 0 0"
-"i1" 4 "0 0 0"
-"j1" 4 "0 0 0"
-"k1" 4 "0 0 0"
-"l1" 4 "0 0 0"
-"m1" 4 "0 0 0"
-"n1" 4 "0 0 0"
-"o1" 4 "0 0 0"
-"p1" 4 "0 0 0"
-"q1" 4 "0 0 0"
-"r1" 4 "0 0 0"
-"s1" 4 "0 0 0"
-"t1" 4 "0 0 0"
-"t14" 4 "0 0 0"
-"s14" 4 "0 0 0"
-"b15" 4 "0 0 0"
-"a15" 4 "0 0 0"
-"a16" 4 "0 0 0"
-"b16" 4 "0 0 0"
-"s16" 4 "0 0 0"
-"t16" 4 "0 0 0"
-"t15" 4 "0 0 0"
-"s15" 4 "0 0 0"
-"t17" 4 "0 0 0"
-"s17" 4 "0 0 0"
-"b17" 4 "0 0 0"
-"a17" 4 "0 0 0"
-"a18" 4 "0 0 0"
-"b18" 4 "0 0 0"
-"s18" 4 "0 0 0"
-"t18" 4 "0 0 0"
-"t19" 4 "0 0 0"
-"s19" 4 "0 0 0"
-"r19" 4 "0 0 0"
-"q19" 4 "0 0 0"
-"p19" 4 "0 0 0"
-"o19" 4 "0 0 0"
-"n19" 4 "0 0 0"
-"m19" 4 "0 0 0"
-"l19" 4 "0 0 0"
-"k19" 4 "0 0 0"
-"j19" 4 "0 0 0"
-"i19" 4 "0 0 0"
-"h19" 4 "0 0 0"
-"g19" 4 "0 0 0"
-"f19" 4 "0 0 0"
-"e19" 4 "0 0 0"
-"d19" 4 "0 0 0"
-"c19" 4 "0 0 0"
-"b19" 4 "0 0 0"
-"a19" 4 "0 0 0"
-"a20" 4 "0 0 0"
-"b20" 4 "0 0 0"
-"c20" 4 "0 0 0"
-"d20" 4 "0 0 0"
-"e20" 4 "0 0 0"
-"f20" 4 "0 0 0"
-"g20" 4 "0 0 0"
-"h20" 4 "0 0 0"
-"i20" 4 "0 0 0"
-"j20" 4 "0 0 0"
-"k20" 4 "0 0 0"
-"l20" 4 "0 0 0"
-"m20" 4 "0 0 0"
-"n20" 4 "0 0 0"
-"o20" 4 "0 0 0"
-"p20" 4 "0 0 0"
-"q20" 4 "0 0 0"
-"r20" 4 "0 0 0"
-"s20" 4 "0 0 0"
-"t20" 4 "0 0 0"
+// bulldozer storage "level9" last updated 11-06-2016 14:53:20
+nextlevel = "level10"
+"c9" 4 "0 -1 0"
+"b9" 4 "0 -1 0"
+"a9" 4 "0 -1 0"
+"a8" 4 "0 -1 0"
+"b8" 4 "0 -1 0"
+"c8" 4 "0 -1 0"
+"d8" 4 "0 -1 0"
+"e8" 4 "0 -1 0"
+"f8" 4 "0 -1 0"
+"g8" 4 "0 -1 0"
+"h8" 4 "0 -1 0"
+"i8" 4 "0 -1 0"
+"j8" 4 "0 -1 0"
+"k8" 4 "0 -1 0"
+"l8" 4 "0 -1 0"
+"m8" 4 "0 -1 0"
+"n8" 4 "0 -1 0"
+"o8" 4 "0 -1 0"
+"p8" 4 "0 -1 0"
+"q8" 4 "0 -1 0"
+"r8" 4 "0 -1 0"
+"s8" 4 "0 -1 0"
+"t8" 4 "0 -1 0"
+"t7" 4 "0 -1 0"
+"s7" 4 "0 -1 0"
+"r7" 4 "0 -1 0"
+"q7" 4 "0 -1 0"
+"p7" 4 "0 -1 0"
+"o7" 4 "0 -1 0"
+"n7" 4 "0 -1 0"
+"m7" 4 "0 -1 0"
+"l7" 4 "0 -1 0"
+"i7" 4 "0 -1 0"
+"h5" 4 "0 -1 0"
+"j7" 4 "0 -1 0"
+"g7" 4 "0 -1 0"
+"f7" 4 "0 -1 0"
+"e7" 4 "0 -1 0"
+"d7" 4 "0 -1 0"
+"c7" 4 "0 -1 0"
+"b7" 4 "0 -1 0"
+"a7" 4 "0 -1 0"
+"a6" 4 "0 -1 0"
+"b6" 4 "0 -1 0"
+"c6" 4 "0 -1 0"
+"d6" 4 "0 -1 0"
+"e6" 4 "0 -1 0"
+"f6" 4 "0 -1 0"
+"g6" 4 "0 -1 0"
+"k7" 4 "0 -1 0"
+"j6" 4 "0 -1 0"
+"l6" 4 "0 -1 0"
+"m6" 4 "0 -1 0"
+"n6" 4 "0 -1 0"
+"o6" 4 "0 -1 0"
+"p6" 4 "0 -1 0"
+"q6" 4 "0 -1 0"
+"r6" 4 "0 -1 0"
+"s6" 4 "0 -1 0"
+"t6" 4 "0 -1 0"
+"t5" 4 "0 -1 0"
+"s5" 4 "0 -1 0"
+"r5" 4 "0 -1 0"
+"q5" 4 "0 -1 0"
+"p5" 4 "0 -1 0"
+"o5" 4 "0 -1 0"
+"n5" 4 "0 -1 0"
+"m5" 4 "0 -1 0"
+"l5" 4 "0 -1 0"
+"g5" 4 "0 -1 0"
+"f5" 4 "0 -1 0"
+"e5" 4 "0 -1 0"
+"d5" 4 "0 -1 0"
+"c5" 4 "0 -1 0"
+"b5" 4 "0 -1 0"
+"a5" 4 "0 -1 0"
+"a4" 4 "0 -1 0"
+"b4" 4 "0 -1 0"
+"c4" 4 "0 -1 0"
+"d4" 4 "0 -1 0"
+"e4" 4 "0 -1 0"
+"f4" 4 "0 -1 0"
+"g4" 4 "0 -1 0"
+"h4" 4 "0 -1 0"
+"i4" 4 "0 -1 0"
+"j4" 4 "0 -1 0"
+"l4" 4 "0 -1 0"
+"m4" 4 "0 -1 0"
+"n4" 4 "0 -1 0"
+"o4" 4 "0 -1 0"
+"p4" 4 "0 -1 0"
+"q4" 4 "0 -1 0"
+"r4" 4 "0 -1 0"
+"s4" 4 "0 -1 0"
+"t4" 4 "0 -1 0"
+"t3" 4 "0 -1 0"
+"s3" 4 "0 -1 0"
+"r3" 4 "0 -1 0"
+"q3" 4 "0 -1 0"
+"p3" 4 "0 -1 0"
+"o3" 4 "0 -1 0"
+"n3" 4 "0 -1 0"
+"m3" 4 "0 -1 0"
+"l3" 4 "0 -1 0"
+"j3" 4 "0 -1 0"
+"i3" 4 "0 -1 0"
+"h3" 4 "0 -1 0"
+"g3" 4 "0 -1 0"
+"f3" 4 "0 -1 0"
+"e3" 4 "0 -1 0"
+"d3" 4 "0 -1 0"
+"c3" 4 "0 -1 0"
+"b3" 4 "0 -1 0"
+"a3" 4 "0 -1 0"
+"a2" 4 "0 -1 0"
+"b2" 4 "0 -1 0"
+"c2" 4 "0 -1 0"
+"d2" 4 "0 -1 0"
+"e2" 4 "0 -1 0"
+"f2" 4 "0 -1 0"
+"g2" 4 "0 -1 0"
+"h2" 4 "0 -1 0"
+"i2" 4 "0 -1 0"
+"j2" 4 "0 -1 0"
+"l2" 4 "0 -1 0"
+"m2" 4 "0 -1 0"
+"n2" 4 "0 -1 0"
+"o2" 4 "0 -1 0"
+"p2" 4 "0 -1 0"
+"q2" 4 "0 -1 0"
+"r2" 4 "0 -1 0"
+"s2" 4 "0 -1 0"
+"t2" 4 "0 -1 0"
+"t1" 4 "0 -1 0"
+"s1" 4 "0 -1 0"
+"r1" 4 "0 -1 0"
+"q1" 4 "0 -1 0"
+"p1" 4 "0 -1 0"
+"o1" 4 "0 -1 0"
+"n1" 4 "0 -1 0"
+"m1" 4 "0 -1 0"
+"l1" 4 "0 -1 0"
+"k1" 4 "0 -1 0"
+"j1" 4 "0 -1 0"
+"i1" 4 "0 -1 0"
+"h1" 4 "0 -1 0"
+"g1" 4 "0 -1 0"
+"f1" 4 "0 -1 0"
+"e1" 4 "0 -1 0"
+"d1" 4 "0 -1 0"
+"c1" 4 "0 -1 0"
+"b1" 4 "0 -1 0"
+"a1" 4 "0 -1 0"
+"t9" 4 "0 -1 0"
+"s9" 4 "0 -1 0"
+"r9" 4 "0 -1 0"
+"q9" 4 "0 -1 0"
+"p11" 6 "0 -1 0"
+"o9" 4 "0 -1 0"
+"n9" 4 "0 -1 0"
+"m10" 5 "0 -1 0"
+"m9" 5 "0 -1 0"
+"l9" 5 "0 -1 0"
+"k9" 5 "0 -1 0"
+"j9" 5 "0 -1 0"
+"i9" 5 "0 -1 0"
+"g9" 4 "0 -1 0"
+"f11" 6 "0 -1 0"
+"e9" 4 "0 -1 0"
+"d9" 4 "0 -1 0"
+"d10" 4 "0 -1 0"
+"c10" 4 "0 -1 0"
+"b10" 4 "0 -1 0"
+"a10" 4 "0 -1 0"
+"a11" 4 "0 -1 0"
+"b11" 4 "0 -1 0"
+"c11" 4 "0 -1 0"
+"f9" 6 "0 -1 0"
+"f12" 11 "0 -1 0"
+"f15" 6 "0 -1 0"
+"g11" 4 "0 -1 0"
+"h9" 5 "0 -1 0"
+"i14" 1 "0 -1 0"
+"i11" 2 "0 -1 0"
+"i10" 2 "0 -1 0"
+"j10" 2 "0 -1 0"
+"h10" 5 "0 -1 0"
+"n11" 4 "0 -1 0"
+"o11" 4 "0 -1 0"
+"p13" 6 "0 -1 0"
+"h7" 4 "0 -1 0"
+"p9" 6 "0 -1 0"
+"s11" 4 "0 -1 0"
+"t11" 4 "0 -1 0"
+"t10" 4 "0 -1 0"
+"s10" 4 "0 -1 0"
+"r10" 4 "0 -1 0"
+"p15" 6 "0 -1 0"
+"q11" 11 "0 -1 0"
+"o10" 4 "0 -1 0"
+"n10" 4 "0 -1 0"
+"h11" 5 "0 -1 0"
+"k10" 2 "0 -1 0"
+"l10" 2 "0 -1 0"
+"j14" 3 "0 -1 0"
+"j13" 3 "0 -1 0"
+"h12" 5 "0 -1 0"
+"g10" 4 "0 -1 0"
+"f14" 11 "0 -1 0"
+"f13" 6 "0 -1 0"
+"t12" 4 "0 -1 0"
+"r11" 6 "0 -1 0"
+"h6" 4 "0 -1 0"
+"p14" 11 "0 -1 0"
+"p10" 11 "0 -1 0"
+"o12" 4 "0 -1 0"
+"n12" 4 "0 -1 0"
+"i12" 5 "0 -1 0"
+"k12" 3 "0 -1 0"
+"j11" 3 "0 -1 0"
+"k10" 3 "0 -1 0"
+"i13" 5 "0 -1 0"
+"h13" 5 "0 -1 0"
+"g12" 4 "0 -1 0"
+"f16" 11 "0 -1 0"
+"c13" 11 "0 -1 0"
+"e13" 11 "0 -1 0"
+"e10" 6 "0 -1 0"
+"b12" 4 "0 -1 0"
+"a12" 4 "0 -1 0"
+"a13" 4 "0 -1 0"
+"b13" 4 "0 -1 0"
+"d14" 11 "0 -1 0"
+"e12" 6 "0 -1 0"
+"f10" 11 "0 -1 0"
+"d13" 6 "0 -1 0"
+"g13" 4 "0 -1 0"
+"h14" 5 "0 -1 0"
+"h15" 5 "0 -1 0"
+"f17" 6 "0 -1 0"
+"e16" 6 "0 -1 0"
+"i15" 5 "0 -1 0"
+"d15" 6 "0 -1 0"
+"n13" 4 "0 -1 0"
+"o13" 4 "0 -1 0"
+"p17" 6 "0 -1 0"
+"r12" 11 "0 -1 0"
+"q13" 11 "0 -1 0"
+"s14" 6 "0 -1 0"
+"t13" 4 "0 -1 0"
+"t14" 4 "0 -1 0"
+"s12" 6 "0 -1 0"
+"s13" 11 "0 -1 0"
+"q12" 6 "0 -1 0"
+"p12" 11 "0 -1 0"
+"o14" 4 "0 -1 0"
+"n14" 4 "0 -1 0"
+"m14" 4 "0 -1 0"
+"i16" 5 "0 -1 0"
+"c14" 6 "0 -1 0"
+"c12" 6 "0 -1 0"
+"d11" 6 "0 -1 0"
+"j16" 5 "0 -1 0"
+"g14" 4 "0 -1 0"
+"p16" 11 "0 -1 0"
+"e14" 6 "0 -1 0"
+"e15" 11 "0 -1 0"
+"d12" 11 "0 -1 0"
+"b14" 4 "0 -1 0"
+"a14" 4 "0 -1 0"
+"a15" 4 "0 -1 0"
+"b15" 4 "0 -1 0"
+"c15" 4 "0 -1 0"
+"e11" 11 "0 -1 0"
+"q15" 11 "0 -1 0"
+"r14" 11 "0 -1 0"
+"k16" 5 "0 -1 0"
+"l16" 5 "0 -1 0"
+"l15" 5 "0 -1 0"
+"l14" 5 "0 -1 0"
+"q10" 6 "0 -1 0"
+"l13" 5 "0 -1 0"
+"m15" 4 "0 -1 0"
+"n15" 4 "0 -1 0"
+"o15" 4 "0 -1 0"
+"q16" 6 "0 -1 0"
+"r15" 6 "0 -1 0"
+"q14" 6 "0 -1 0"
+"s15" 4 "0 -1 0"
+"t15" 4 "0 -1 0"
+"t16" 4 "0 -1 0"
+"s16" 4 "0 -1 0"
+"r16" 4 "0 -1 0"
+"r13" 6 "0 -1 0"
+"k6" 4 "0 -1 0"
+"o16" 4 "0 -1 0"
+"n16" 4 "0 -1 0"
+"m16" 4 "0 -1 0"
+"m13" 5 "0 -1 0"
+"m12" 5 "0 -1 0"
+"h16" 4 "0 -1 0"
+"g16" 4 "0 -1 0"
+"g15" 4 "0 -1 0"
+"m11" 5 "0 -1 0"
+"k5" 4 "0 -1 0"
+"j5" 4 "0 -1 0"
+"d16" 4 "0 -1 0"
+"c16" 4 "0 -1 0"
+"b16" 4 "0 -1 0"
+"a16" 4 "0 -1 0"
+"a17" 4 "0 -1 0"
+"b17" 4 "0 -1 0"
+"c17" 4 "0 -1 0"
+"d17" 4 "0 -1 0"
+"e17" 4 "0 -1 0"
+"i5" 4 "0 -1 0"
+"g17" 4 "0 -1 0"
+"h17" 4 "0 -1 0"
+"i17" 4 "0 -1 0"
+"j17" 4 "0 -1 0"
+"k17" 4 "0 -1 0"
+"l17" 4 "0 -1 0"
+"m17" 4 "0 -1 0"
+"n17" 4 "0 -1 0"
+"o17" 4 "0 -1 0"
+"i6" 4 "0 -1 0"
+"q17" 4 "0 -1 0"
+"r17" 4 "0 -1 0"
+"s17" 4 "0 -1 0"
+"t17" 4 "0 -1 0"
+"t18" 4 "0 -1 0"
+"s18" 4 "0 -1 0"
+"r18" 4 "0 -1 0"
+"q18" 4 "0 -1 0"
+"p18" 4 "0 -1 0"
+"o18" 4 "0 -1 0"
+"n18" 4 "0 -1 0"
+"m18" 4 "0 -1 0"
+"l18" 4 "0 -1 0"
+"k18" 4 "0 -1 0"
+"j18" 4 "0 -1 0"
+"i18" 4 "0 -1 0"
+"h18" 4 "0 -1 0"
+"g18" 4 "0 -1 0"
+"f18" 4 "0 -1 0"
+"e18" 4 "0 -1 0"
+"d18" 4 "0 -1 0"
+"c18" 4 "0 -1 0"
+"b18" 4 "0 -1 0"
+"a18" 4 "0 -1 0"
+"a19" 4 "0 -1 0"
+"b19" 4 "0 -1 0"
+"c19" 4 "0 -1 0"
+"d19" 4 "0 -1 0"
+"e19" 4 "0 -1 0"
+"f19" 4 "0 -1 0"
+"g19" 4 "0 -1 0"
+"h19" 4 "0 -1 0"
+"i19" 4 "0 -1 0"
+"j19" 4 "0 -1 0"
+"k19" 4 "0 -1 0"
+"l19" 4 "0 -1 0"
+"m19" 4 "0 -1 0"
+"n19" 4 "0 -1 0"
+"o19" 4 "0 -1 0"
+"p19" 4 "0 -1 0"
+"q19" 4 "0 -1 0"
+"r19" 4 "0 -1 0"
+"s19" 4 "0 -1 0"
+"t19" 4 "0 -1 0"
+"t20" 4 "0 -1 0"
+"s20" 4 "0 -1 0"
+"r20" 4 "0 -1 0"
+"q20" 4 "0 -1 0"
+"p20" 4 "0 -1 0"
+"o20" 4 "0 -1 0"
+"n20" 4 "0 -1 0"
+"m20" 4 "0 -1 0"
+"l20" 4 "0 -1 0"
+"k20" 4 "0 -1 0"
+"j20" 4 "0 -1 0"
+"i20" 4 "0 -1 0"
+"h20" 4 "0 -1 0"
+"g20" 4 "0 -1 0"
+"f20" 4 "0 -1 0"
+"e20" 4 "0 -1 0"
+"d20" 4 "0 -1 0"
+"c20" 4 "0 -1 0"
+"b20" 4 "0 -1 0"
+"a20" 4 "0 -1 0"
+"k4" 4 "0 -1 0"
+"k3" 4 "0 -1 0"
+"k2" 4 "0 -1 0"
diff --git a/models/ctf/shield.md3_0.skin b/models/ctf/shield.md3_0.skin
new file mode 100644 (file)
index 0000000..113f275
--- /dev/null
@@ -0,0 +1 @@
+shield,ons_shield
diff --git a/models/ctf/shield.md3_1.skin b/models/ctf/shield.md3_1.skin
new file mode 100644 (file)
index 0000000..bfeddf2
--- /dev/null
@@ -0,0 +1 @@
+shield,nade_orb
diff --git a/models/player/erebus.iqm_1.skin b/models/player/erebus.iqm_1.skin
new file mode 100644 (file)
index 0000000..4597cef
--- /dev/null
@@ -0,0 +1,2 @@
+erebus,erebusfullbright
+erebus.001,shadowhead
diff --git a/models/player/erebus_lod1.iqm_1.skin b/models/player/erebus_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..4597cef
--- /dev/null
@@ -0,0 +1,2 @@
+erebus,erebusfullbright
+erebus.001,shadowhead
diff --git a/models/player/erebus_lod2.iqm_1.skin b/models/player/erebus_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..4597cef
--- /dev/null
@@ -0,0 +1,2 @@
+erebus,erebusfullbright
+erebus.001,shadowhead
diff --git a/models/player/gak.iqm_0.skin b/models/player/gak.iqm_0.skin
new file mode 100644 (file)
index 0000000..f2da167
--- /dev/null
@@ -0,0 +1,2 @@
+gak2.001,gakarmor
+gak2,gak
diff --git a/models/player/gak.iqm_1.skin b/models/player/gak.iqm_1.skin
new file mode 100644 (file)
index 0000000..3844f6c
--- /dev/null
@@ -0,0 +1,2 @@
+gak2.001,gakarmorfb
+gak2,gakfullbright
diff --git a/models/player/gak_lod1.iqm_0.skin b/models/player/gak_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..f2da167
--- /dev/null
@@ -0,0 +1,2 @@
+gak2.001,gakarmor
+gak2,gak
diff --git a/models/player/gak_lod1.iqm_1.skin b/models/player/gak_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..3844f6c
--- /dev/null
@@ -0,0 +1,2 @@
+gak2.001,gakarmorfb
+gak2,gakfullbright
diff --git a/models/player/gak_lod2.iqm_0.skin b/models/player/gak_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..f2da167
--- /dev/null
@@ -0,0 +1,2 @@
+gak2.001,gakarmor
+gak2,gak
diff --git a/models/player/gak_lod2.iqm_1.skin b/models/player/gak_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..3844f6c
--- /dev/null
@@ -0,0 +1,2 @@
+gak2.001,gakarmorfb
+gak2,gakfullbright
diff --git a/models/player/gakarmored.iqm_0.skin b/models/player/gakarmored.iqm_0.skin
new file mode 100644 (file)
index 0000000..1e8d3e9
--- /dev/null
@@ -0,0 +1,2 @@
+gak1.001,gak
+gak1,gakarmor
diff --git a/models/player/gakarmored.iqm_1.skin b/models/player/gakarmored.iqm_1.skin
new file mode 100644 (file)
index 0000000..3377bcb
--- /dev/null
@@ -0,0 +1,2 @@
+gak1.001,gakfullbright
+gak1,gakarmorfb
diff --git a/models/player/gakarmored_lod1.iqm_0.skin b/models/player/gakarmored_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..1e8d3e9
--- /dev/null
@@ -0,0 +1,2 @@
+gak1.001,gak
+gak1,gakarmor
diff --git a/models/player/gakarmored_lod1.iqm_1.skin b/models/player/gakarmored_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..3377bcb
--- /dev/null
@@ -0,0 +1,2 @@
+gak1.001,gakfullbright
+gak1,gakarmorfb
diff --git a/models/player/gakarmored_lod2.iqm_0.skin b/models/player/gakarmored_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..1e8d3e9
--- /dev/null
@@ -0,0 +1,2 @@
+gak1.001,gak
+gak1,gakarmor
diff --git a/models/player/gakarmored_lod2.iqm_1.skin b/models/player/gakarmored_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..3377bcb
--- /dev/null
@@ -0,0 +1,2 @@
+gak1.001,gakfullbright
+gak1,gakarmorfb
diff --git a/models/player/gakmasked.iqm_0.skin b/models/player/gakmasked.iqm_0.skin
new file mode 100644 (file)
index 0000000..2df68ec
--- /dev/null
@@ -0,0 +1,2 @@
+gak3,gak
+gak3.001,gakarmor
diff --git a/models/player/gakmasked.iqm_1.skin b/models/player/gakmasked.iqm_1.skin
new file mode 100644 (file)
index 0000000..802db3e
--- /dev/null
@@ -0,0 +1,2 @@
+gak3,gakfullbright
+gak3.001,gakarmorfb
diff --git a/models/player/gakmasked_lod1.iqm_0.skin b/models/player/gakmasked_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..2df68ec
--- /dev/null
@@ -0,0 +1,2 @@
+gak3,gak
+gak3.001,gakarmor
diff --git a/models/player/gakmasked_lod1.iqm_1.skin b/models/player/gakmasked_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..802db3e
--- /dev/null
@@ -0,0 +1,2 @@
+gak3,gakfullbright
+gak3.001,gakarmorfb
diff --git a/models/player/gakmasked_lod2.iqm_0.skin b/models/player/gakmasked_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..2df68ec
--- /dev/null
@@ -0,0 +1,2 @@
+gak3,gak
+gak3.001,gakarmor
diff --git a/models/player/gakmasked_lod2.iqm_1.skin b/models/player/gakmasked_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..802db3e
--- /dev/null
@@ -0,0 +1,2 @@
+gak3,gakfullbright
+gak3.001,gakarmorfb
diff --git a/models/player/ignis.iqm_0.skin b/models/player/ignis.iqm_0.skin
new file mode 100644 (file)
index 0000000..a0e69e9
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis1.001,ignishead
diff --git a/models/player/ignis.iqm_1.skin b/models/player/ignis.iqm_1.skin
new file mode 100644 (file)
index 0000000..2c93e98
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis1.001,ignishead
diff --git a/models/player/ignis_lod1.iqm_0.skin b/models/player/ignis_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..a0e69e9
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis1.001,ignishead
diff --git a/models/player/ignis_lod1.iqm_1.skin b/models/player/ignis_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..2c93e98
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis1.001,ignishead
diff --git a/models/player/ignis_lod2.iqm_0.skin b/models/player/ignis_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..a0e69e9
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis1.001,ignishead
diff --git a/models/player/ignis_lod2.iqm_1.skin b/models/player/ignis_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..2c93e98
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis1.001,ignishead
diff --git a/models/player/ignishalfmasked.iqm_0.skin b/models/player/ignishalfmasked.iqm_0.skin
new file mode 100644 (file)
index 0000000..9523f9e
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis2.001,ignishead
diff --git a/models/player/ignishalfmasked.iqm_1.skin b/models/player/ignishalfmasked.iqm_1.skin
new file mode 100644 (file)
index 0000000..89a0020
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis2.001,ignishead
diff --git a/models/player/ignishalfmasked_lod1.iqm_0.skin b/models/player/ignishalfmasked_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..9523f9e
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis2.001,ignishead
diff --git a/models/player/ignishalfmasked_lod1.iqm_1.skin b/models/player/ignishalfmasked_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..89a0020
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis2.001,ignishead
diff --git a/models/player/ignishalfmasked_lod2.iqm_0.skin b/models/player/ignishalfmasked_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..9523f9e
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis2.001,ignishead
diff --git a/models/player/ignishalfmasked_lod2.iqm_1.skin b/models/player/ignishalfmasked_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..89a0020
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis2.001,ignishead
diff --git a/models/player/ignismasked.iqm_0.skin b/models/player/ignismasked.iqm_0.skin
new file mode 100644 (file)
index 0000000..d46d157
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis3,ignishead
diff --git a/models/player/ignismasked.iqm_1.skin b/models/player/ignismasked.iqm_1.skin
new file mode 100644 (file)
index 0000000..eb257cc
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis3,ignishead
diff --git a/models/player/ignismasked_lod1.iqm_0.skin b/models/player/ignismasked_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..d46d157
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis3,ignishead
diff --git a/models/player/ignismasked_lod1.iqm_1.skin b/models/player/ignismasked_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..eb257cc
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis3,ignishead
diff --git a/models/player/ignismasked_lod2.iqm_0.skin b/models/player/ignismasked_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..d46d157
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignis
+ignis3,ignishead
diff --git a/models/player/ignismasked_lod2.iqm_1.skin b/models/player/ignismasked_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..eb257cc
--- /dev/null
@@ -0,0 +1,2 @@
+ignis1,ignisfullbright
+ignis3,ignishead
diff --git a/models/player/nyx.iqm_0.skin b/models/player/nyx.iqm_0.skin
new file mode 100644 (file)
index 0000000..383252c
--- /dev/null
@@ -0,0 +1,2 @@
+nyx,nyx
+nyx.001,shadowhead
diff --git a/models/player/nyx.iqm_1.skin b/models/player/nyx.iqm_1.skin
new file mode 100644 (file)
index 0000000..19b5fd5
--- /dev/null
@@ -0,0 +1,2 @@
+nyx,nyxfullbright
+nyx.001,shadowhead
diff --git a/models/player/nyx_lod1.iqm_0.skin b/models/player/nyx_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..383252c
--- /dev/null
@@ -0,0 +1,2 @@
+nyx,nyx
+nyx.001,shadowhead
diff --git a/models/player/nyx_lod1.iqm_1.skin b/models/player/nyx_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..19b5fd5
--- /dev/null
@@ -0,0 +1,2 @@
+nyx,nyxfullbright
+nyx.001,shadowhead
diff --git a/models/player/nyx_lod2.iqm_0.skin b/models/player/nyx_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..383252c
--- /dev/null
@@ -0,0 +1,2 @@
+nyx,nyx
+nyx.001,shadowhead
diff --git a/models/player/nyx_lod2.iqm_1.skin b/models/player/nyx_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..19b5fd5
--- /dev/null
@@ -0,0 +1,2 @@
+nyx,nyxfullbright
+nyx.001,shadowhead
diff --git a/models/player/pyria.iqm_0.skin b/models/player/pyria.iqm_0.skin
new file mode 100644 (file)
index 0000000..1932354
--- /dev/null
@@ -0,0 +1,2 @@
+pyria_obj.001,pyriahair
+pyria_obj,pyriafullbright
diff --git a/models/player/pyria.iqm_1.skin b/models/player/pyria.iqm_1.skin
new file mode 100644 (file)
index 0000000..1932354
--- /dev/null
@@ -0,0 +1,2 @@
+pyria_obj.001,pyriahair
+pyria_obj,pyriafullbright
diff --git a/models/player/pyria_lod1.iqm_0.skin b/models/player/pyria_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..1932354
--- /dev/null
@@ -0,0 +1,2 @@
+pyria_obj.001,pyriahair
+pyria_obj,pyriafullbright
diff --git a/models/player/pyria_lod1.iqm_1.skin b/models/player/pyria_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..1932354
--- /dev/null
@@ -0,0 +1,2 @@
+pyria_obj.001,pyriahair
+pyria_obj,pyriafullbright
diff --git a/models/player/pyria_lod2.iqm_0.skin b/models/player/pyria_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..1932354
--- /dev/null
@@ -0,0 +1,2 @@
+pyria_obj.001,pyriahair
+pyria_obj,pyriafullbright
diff --git a/models/player/pyria_lod2.iqm_1.skin b/models/player/pyria_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..1932354
--- /dev/null
@@ -0,0 +1,2 @@
+pyria_obj.001,pyriahair
+pyria_obj,pyriafullbright
diff --git a/models/player/seraphina.iqm_0.skin b/models/player/seraphina.iqm_0.skin
new file mode 100644 (file)
index 0000000..a8ea4ee
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42.001,seraphina
+ignis42,ignis
diff --git a/models/player/seraphina.iqm_1.skin b/models/player/seraphina.iqm_1.skin
new file mode 100644 (file)
index 0000000..cf702a3
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42.001,seraphina
+ignis42,ignisfullbright
diff --git a/models/player/seraphina_lod1.iqm_0.skin b/models/player/seraphina_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..a8ea4ee
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42.001,seraphina
+ignis42,ignis
diff --git a/models/player/seraphina_lod1.iqm_1.skin b/models/player/seraphina_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..cf702a3
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42.001,seraphina
+ignis42,ignisfullbright
diff --git a/models/player/seraphina_lod2.iqm_0.skin b/models/player/seraphina_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..a8ea4ee
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42.001,seraphina
+ignis42,ignis
diff --git a/models/player/seraphina_lod2.iqm_1.skin b/models/player/seraphina_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..cf702a3
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42.001,seraphina
+ignis42,ignisfullbright
diff --git a/models/player/seraphinamasked.iqm_0.skin b/models/player/seraphinamasked.iqm_0.skin
new file mode 100644 (file)
index 0000000..7b94ebe
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42,ignisfullbright
+ignis42.002,ignishead
diff --git a/models/player/seraphinamasked.iqm_1.skin b/models/player/seraphinamasked.iqm_1.skin
new file mode 100644 (file)
index 0000000..7b94ebe
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42,ignisfullbright
+ignis42.002,ignishead
diff --git a/models/player/seraphinamasked_lod1.iqm_0.skin b/models/player/seraphinamasked_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..7b94ebe
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42,ignisfullbright
+ignis42.002,ignishead
diff --git a/models/player/seraphinamasked_lod1.iqm_1.skin b/models/player/seraphinamasked_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..7b94ebe
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42,ignisfullbright
+ignis42.002,ignishead
diff --git a/models/player/seraphinamasked_lod2.iqm_0.skin b/models/player/seraphinamasked_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..7b94ebe
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42,ignisfullbright
+ignis42.002,ignishead
diff --git a/models/player/seraphinamasked_lod2.iqm_1.skin b/models/player/seraphinamasked_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..7b94ebe
--- /dev/null
@@ -0,0 +1,2 @@
+ignis42,ignisfullbright
+ignis42.002,ignishead
diff --git a/models/player/umbra.iqm_0.skin b/models/player/umbra.iqm_0.skin
new file mode 100644 (file)
index 0000000..447eead
--- /dev/null
@@ -0,0 +1 @@
+umbra,umbra
diff --git a/models/player/umbra.iqm_1.skin b/models/player/umbra.iqm_1.skin
new file mode 100644 (file)
index 0000000..cb9c3d0
--- /dev/null
@@ -0,0 +1 @@
+umbra,umbrafullbright
diff --git a/models/player/umbra_lod1.iqm_0.skin b/models/player/umbra_lod1.iqm_0.skin
new file mode 100644 (file)
index 0000000..447eead
--- /dev/null
@@ -0,0 +1 @@
+umbra,umbra
diff --git a/models/player/umbra_lod1.iqm_1.skin b/models/player/umbra_lod1.iqm_1.skin
new file mode 100644 (file)
index 0000000..cb9c3d0
--- /dev/null
@@ -0,0 +1 @@
+umbra,umbrafullbright
diff --git a/models/player/umbra_lod2.iqm_0.skin b/models/player/umbra_lod2.iqm_0.skin
new file mode 100644 (file)
index 0000000..447eead
--- /dev/null
@@ -0,0 +1 @@
+umbra,umbra
diff --git a/models/player/umbra_lod2.iqm_1.skin b/models/player/umbra_lod2.iqm_1.skin
new file mode 100644 (file)
index 0000000..cb9c3d0
--- /dev/null
@@ -0,0 +1 @@
+umbra,umbrafullbright
index 0f49665424d3d5a0f8af9bdaa483bb088baa1525..7910786107c1685dd05f2e896ea65d976a870607 100644 (file)
@@ -197,7 +197,7 @@ set g_nades_nade_edgedamage 90
 set g_nades_nade_radius 300
 set g_nades_nade_force 650
 set g_nades_nade_newton_style 0
-set g_nades_nade_type 1 "Type of the off-hand grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade"
+set g_nades_nade_type 1 "Type of the off-hand grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade 8:entrap"
 
 seta cl_nade_timer 1 "show a visual timer for nades, 1 = only circle, 2 = circle with text"
 seta cl_nade_type 3
@@ -215,7 +215,7 @@ seta cl_pokenade_type "zombie"
 //
 set g_nades_bonus 0 "Enable bonus grenades"
 set g_nades_bonus_client_select 0 "Allow client side selection of bonus nade type"
-set g_nades_bonus_type 2 "Type of the bonus grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade"
+set g_nades_bonus_type 2 "Type of the bonus grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade 8:entrap"
 set g_nades_bonus_onstrength 1 "Always give bonus grenades to players that have the strength powerup"
 set g_nades_bonus_max 3 "Maximum number of bonus grenades"
 set g_nades_bonus_only 0 "Disallow regular nades, only bonus nades can be used"
@@ -267,6 +267,12 @@ set g_nades_heal_foe   -2 "Multiplier of health given to enemies"
 set g_nades_pokenade_monster_lifetime 150 "How long pokenade monster will survive"
 set g_nades_pokenade_monster_type "zombie" "Monster to spawn"
 
+// Entrap (8)
+set g_nades_entrap_strength 0.01 "Strength of the orb's movement slowing powers"
+set g_nades_entrap_speed 0.5 "Running speed while entrapped"
+set g_nades_entrap_time 10 "Life time of the orb"
+set g_nades_entrap_radius 500
+
 
 // ============
 //  camp check
diff --git a/qcsrc/.editorconfig b/qcsrc/.editorconfig
new file mode 100644 (file)
index 0000000..013c331
--- /dev/null
@@ -0,0 +1,7 @@
+root = true
+
+[*.{qc,qh,inc}]
+end_of_line = lf
+insert_final_newline = true
+indent_style = tab
+charset = utf-8
index ee335d9b0013817edf041d88082c9d8a8a9d2cea..0ed67281b4259d18fdd466d6f29912b94f011a63 100644 (file)
@@ -7,6 +7,7 @@ WORKDIR ?= ../.tmp
 QCCFLAGS_WATERMARK ?= $(shell git describe --tags --dirty='~')
 VER = $(subst *,\*,$(QCCFLAGS_WATERMARK))
 NDEBUG ?= 1
+XONOTIC ?= 1
 BUILD_MOD ?= 0
 
 ifndef ZIP
@@ -30,6 +31,7 @@ QCCFLAGS_WTFS ?= \
        -Wno-field-redeclared
 
 QCCDEFS ?= \
+       -DXONOTIC=$(XONOTIC) \
        -DWATERMARK="$(QCCFLAGS_WATERMARK)" \
        -DNDEBUG=$(NDEBUG) \
        -DBUILD_MOD=$(BUILD_MOD) \
index e5fd7d575f643a7e9c7f940c62f8eec94c2b82a5..0a0959b87ae09bb088725c13a4a8c970a5876264 100644 (file)
@@ -11,7 +11,7 @@ string AnnouncerOption()
 {
        string ret = autocvar_cl_announcer;
        MUTATOR_CALLHOOK(AnnouncerOption, ret);
-       ret = ret_string;
+       ret = M_ARGV(0, string);
        return ret;
 }
 
index 3e222c00f88666c364c9296be1c1315f5e9cfb4c..d159cd3170e27426c5d40653f8f6141c463e6ccb 100644 (file)
@@ -418,7 +418,7 @@ float autocvar_scoreboard_offset_left;
 float autocvar_scoreboard_offset_right;
 float autocvar_scoreboard_offset_vertical;
 float autocvar_scoreboard_respawntime_decimals;
-float autocvar_scoreboard_dynamichud = 1;
+bool autocvar_scoreboard_dynamichud = false;
 bool autocvar_v_flipped;
 float autocvar_vid_conheight;
 float autocvar_vid_conwidth;
index 45444c8791ef50f20157d428e8341e0e146936a5..dce058c816da9f2c4abbfae97c4bad68d34931dd 100644 (file)
@@ -92,7 +92,7 @@ void LocalCommand_boxparticles(int request, int argc)
                                        if (index <= 0)
                                                own = entitybyindex(-index);
                                        else
-                                               own = findfloat(world, entnum, index);
+                                               own = findfloat(NULL, entnum, index);
                                        vector org_from = stov(argv(3));
                                        vector org_to = stov(argv(4));
                                        vector dir_from = stov(argv(5));
index 35f28bdca4dec5baea11b3a20dc3db4ca0a76322..30148bdd44e7f4be1fb88b33d406ae203b525788 100644 (file)
@@ -389,7 +389,7 @@ void CSQCPlayer_FallbackFrame_Apply(entity this)
 void CSQCModel_AutoTagIndex_Apply(entity this)
 {
        if(this.tag_entity && wasfreed(this.tag_entity))
-               this.tag_entity = world;
+               this.tag_entity = NULL;
 
        viewloc_SetTags(this);
 
@@ -401,7 +401,7 @@ void CSQCModel_AutoTagIndex_Apply(entity this)
                bool changed = 0;
                if(this.tag_entity.entnum != this.tag_networkentity)
                {
-                       this.tag_entity = findfloat(world, entnum, this.tag_networkentity);
+                       this.tag_entity = findfloat(NULL, entnum, this.tag_networkentity);
                        changed = 1;
                }
 
@@ -431,7 +431,7 @@ void CSQCModel_AutoTagIndex_Apply(entity this)
                                                if(!this.tag_index)
                                                {
                                                        // we need to prevent this from 'appening
-                                                       this.tag_entity = world;
+                                                       this.tag_entity = NULL;
                                                        this.drawmask = 0;
                                                        LOG_TRACE("h_ model lacks weapon attachment, but v_ model is attached to it\n");
                                                }
index c87cb5a89cd853e3561826106d9b31fd2dd4ac2c..c6cb5257b132fc9787ace53ac97bd9d51c338d90 100644 (file)
@@ -387,10 +387,10 @@ void HUD_Reset()
                HUD_Mod_CTF_Reset();
 }
 
-float autocvar_hud_dynamic_shake;
-float autocvar_hud_dynamic_shake_damage_max;
-float autocvar_hud_dynamic_shake_damage_min;
-float autocvar_hud_dynamic_shake_scale;
+float autocvar_hud_dynamic_shake = 1;
+float autocvar_hud_dynamic_shake_damage_max = 130;
+float autocvar_hud_dynamic_shake_damage_min = 10;
+float autocvar_hud_dynamic_shake_scale = 0.2;
 float hud_dynamic_shake_x[10] = {0,    1, -0.7,  0.5, -0.3,  0.2, -0.1,  0.1,  0.0, 0};
 float hud_dynamic_shake_y[10] = {0,  0.4,  0.8, -0.2, -0.6,  0.0,  0.3,  0.1, -0.1, 0};
 bool Hud_Shake_Update()
@@ -446,12 +446,15 @@ void Hud_Dynamic_Frame()
 
        if(autocvar_hud_dynamic_shake > 0)
        {
+               static float old_health = 0;
+               float health = max(-1, STAT(HEALTH));
                if(hud_dynamic_shake_factor == -1) // don't allow the effect for this frame
+               {
                        hud_dynamic_shake_factor = 0;
+                       old_health = health;
+               }
                else
                {
-                       static float old_health = 0;
-                       float health = max(-1, STAT(HEALTH));
                        float new_hud_dynamic_shake_factor = 0;
                        if (old_health - health >= autocvar_hud_dynamic_shake_damage_min
                                && autocvar_hud_dynamic_shake_damage_max > autocvar_hud_dynamic_shake_damage_min
index 5ffec682c0cf0868cd8dc0df1baeb138393c43ed..f45a052aa1859d94ca8e9d5c2658f4f9d5178865 100644 (file)
@@ -642,7 +642,7 @@ void HUD_Panel_FirstInDrawQ(float id);
 void reset_tab_panels()
 {
        for (int i = 0; i < hud_panels_COUNT; ++i)
-               tab_panels[i] = world;
+               tab_panels[i] = NULL;
 }
 float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary)
 {
@@ -706,7 +706,7 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary)
                                highlightedAction = 0;
                                HUD_Panel_FirstInDrawQ(highlightedPanel.panel_id);
                        }
-                       tab_panel = world;
+                       tab_panel = NULL;
                        reset_tab_panels();
                }
        }
@@ -778,7 +778,7 @@ LABEL(find_tab_panel)
                level = floor(tab_panel_pos.y / level_height) * level_height; //starting level
                candidate_pos.x = (!tab_backward) ? vid_conwidth : 0;
                start_posX = tab_panel_pos.x;
-               tab_panel = world;
+               tab_panel = NULL;
                k=0;
                while(++k)
                {
@@ -805,11 +805,11 @@ LABEL(find_tab_panel)
                                reset_tab_panels();
                                if (!old_tab_panel)
                                {
-                                       tab_panel = world;
+                                       tab_panel = NULL;
                                        return true;
                                }
                                starting_panel = old_tab_panel;
-                               old_tab_panel = world;
+                               old_tab_panel = NULL;
                                goto find_tab_panel; //u must find tab_panel!
                        }
                        if (!tab_backward)
@@ -890,7 +890,7 @@ LABEL(find_tab_panel)
                        cvar_set(strcat("hud_panel_", highlightedPanel_backup.panel_name, "_pos"), s);
                        s = strcat(ftos(panel_size_backup.x/vid_conwidth), " ", ftos(panel_size_backup.y/vid_conheight));
                        cvar_set(strcat("hud_panel_", highlightedPanel_backup.panel_name, "_size"), s);
-                       highlightedPanel_backup = world;
+                       highlightedPanel_backup = NULL;
                }
        }
        else if(nPrimary == 's' && hudShiftState & S_CTRL) // save config
@@ -1078,7 +1078,7 @@ void HUD_Panel_Highlight(float allow_move)
                        return;
                }
        }
-       highlightedPanel = world;
+       highlightedPanel = NULL;
        highlightedAction = 0;
 }
 
@@ -1108,7 +1108,7 @@ void HUD_Panel_Mouse()
                        if (tab_panel)
                        {
                                //stop ctrl-tab selection
-                               tab_panel = world;
+                               tab_panel = NULL;
                                reset_tab_panels();
                        }
                        HUD_Panel_Highlight(mouseClicked & S_MOUSE1); // sets highlightedPanel, highlightedAction, panel_click_distance, panel_click_resizeorigin
index f442d2df5253b62d1a86dd617d119c6572c6adde..54c835831dec0b27510d9d41953fd2ac8c265955 100644 (file)
@@ -129,7 +129,7 @@ void HUD_Mod_CTF(vector pos, vector mySize)
 
        ctf_oneflag = (stat_items & CTF_FLAG_NEUTRAL);
 
-       mod_active = (redflag || blueflag || yellowflag || pinkflag || neutralflag);
+       mod_active = (redflag || blueflag || yellowflag || pinkflag || neutralflag || (stat_items & CTF_SHIELDED));
 
        if (autocvar__hud_configure) {
                redflag = 1;
@@ -200,9 +200,9 @@ void HUD_Mod_CTF(vector pos, vector mySize)
        } MACRO_END
        X(red, myteam != NUM_TEAM_1);
        X(blue, myteam != NUM_TEAM_2);
-       X(yellow, myteam != NUM_TEAM_3);
-       X(pink, myteam != NUM_TEAM_4);
-       X(neutral, true);
+       X(yellow, myteam != NUM_TEAM_3 && team_count >= 3);
+       X(pink, myteam != NUM_TEAM_4 && team_count >= 4);
+       X(neutral, ctf_oneflag);
        #undef X
 
        if (ctf_oneflag) {
index 49a8fa5b7a465f2e362098031df2dce86a05a178..b07b84ed33f8001c34779cea4a7bddd9d4db5813 100644 (file)
@@ -10,7 +10,7 @@ void HUD_UpdatePlayerTeams();
 void HUD_Score_Rankings(vector pos, vector mySize, entity me)
 {
        float score;
-       entity tm = world, pl;
+       entity tm = NULL, pl;
        int SCOREPANEL_MAX_ENTRIES = 6;
        float SCOREPANEL_ASPECTRATIO = 2;
        int entries = bound(1, floor(SCOREPANEL_MAX_ENTRIES * mySize.y/mySize.x * SCOREPANEL_ASPECTRATIO), SCOREPANEL_MAX_ENTRIES);
@@ -170,7 +170,7 @@ void HUD_Score()
                        pl = pl.sort_next;
                if(scores_flags[ps_primary] & SFL_ZERO_IS_WORST)
                        if(pl.scores[ps_primary] == 0)
-                               pl = world;
+                               pl = NULL;
 
                score = me.(scores[ps_primary]);
                timer = TIME_ENCODED_TOSTRING(score);
index 41ab8839f0eaac2458f4a46ebd2a1162ccf8aacc..963cc9e418d6b8b153048486c5bc45139a63b981 100644 (file)
@@ -233,7 +233,7 @@ float SetTeam(entity o, int Team)
                        case NUM_TEAM_4:
                                break;
                        default:
-                               if(GetTeam(Team, false) == world)
+                               if(GetTeam(Team, false) == NULL)
                                {
                                        LOG_TRACEF("trying to switch to unsupported team %d\n", Team);
                                        Team = NUM_SPECTATOR;
@@ -249,7 +249,7 @@ float SetTeam(entity o, int Team)
                        case 0:
                                break;
                        default:
-                               if(GetTeam(Team, false) == world)
+                               if(GetTeam(Team, false) == NULL)
                                {
                                        LOG_TRACEF("trying to switch to unsupported team %d\n", Team);
                                        Team = NUM_SPECTATOR;
@@ -304,7 +304,7 @@ void Playerchecker_Think(entity this)
                                // player disconnected
                                SetTeam(e, -1);
                                RemovePlayer(e);
-                               e.sort_prev = world;
+                               e.sort_prev = NULL;
                                //e.gotscores = 0;
                        }
                }
@@ -780,9 +780,8 @@ NET_HANDLE(ENT_CLIENT_SPAWNEVENT, bool is_new)
 
 // CSQC_Ent_Update : Called every frame that the server has indicated an update to the SSQC / CSQC entity has occured.
 // The only parameter reflects if the entity is "new" to the client, meaning it just came into the client's PVS.
-void CSQC_Ent_Update(bool isnew)
+void CSQC_Ent_Update(entity this, bool isnew)
 {
-       SELFPARAM();
        this.sourceLoc = __FILE__ ":" STR(__LINE__);
        int t = ReadByte();
 
@@ -861,9 +860,8 @@ void Ent_Remove(entity this)
        // TODO possibly set more stuff to defaults
 }
 // CSQC_Ent_Remove : Called when the server requests a SSQC / CSQC entity to be removed.  Essentially call remove(this) as well.
-void CSQC_Ent_Remove()
+void CSQC_Ent_Remove(entity this)
 {
-       SELFPARAM();
        if (autocvar_developer_csqcentities) LOG_INFOF("CSQC_Ent_Remove() with this=%i {.entnum=%d, .enttype=%d}\n", this, this.entnum, this.enttype);
        if (wasfreed(this))
        {
index 6773bd1553d371c3c9a9e40991bbcaa39cd933f9..bfc25e99c134116524b39fe0934773484e1627f7 100644 (file)
@@ -134,7 +134,7 @@ void GameTypeVote_DrawGameTypeItem(vector pos, float maxh, float tsize, string g
 
        string thelabel = mv_desc[id], ts;
        entity last = title;
-       entity next = world;
+       entity next = NULL;
        float nlines = 0;
        if( thelabel != "")
        {
@@ -678,8 +678,8 @@ void MapVote_Init()
        for(i = 0; i < mv_num_maps; ++i )
                mv_flags_start[i] = mv_flags[i];
 
-       // Assume mv_pk3list is world, there should only be 1 mapvote per round
-       mv_pk3list = world; // I'm still paranoid!
+       // Assume mv_pk3list is NULL, there should only be 1 mapvote per round
+       mv_pk3list = NULL; // I'm still paranoid!
 
        for(i = 0; i < mv_num_maps; ++i)
        {
index 8c0bf14ea432a2c120f9f6bbb80a8ab381875436..d3b3e46d73526d230e87fe3da69a82f366833f18 100644 (file)
@@ -124,7 +124,7 @@ entity GetTeam(int Team, bool add)
        if(teamslots[num])
                return teamslots[num];
        if (!add)
-               return world;
+               return NULL;
        entity tm = new_pure(team);
        tm.team = Team;
        teamslots[num] = tm;
index f86ef533361699e0e107f6b153d5687975f1ba7c..9a2e8b1373be23d9d79db6e53fe9326384beb8b3 100644 (file)
@@ -2,12 +2,6 @@
 
 #include <common/mutators/base.qh>
 
-// globals
-
-string cmd_name;
-int cmd_argc;
-string cmd_string;
-
 /**
  * Called when a client command is parsed
  * NOTE: hooks MUST start with if (MUTATOR_RETURNVALUE) return false;
@@ -16,6 +10,8 @@ string cmd_string;
  * // example:
  * MUTATOR_HOOKFUNCTION(foo, CSQC_ConsoleCommand) {
  *     if (MUTATOR_RETURNVALUE) return false; // command was already handled
+ *     string cmd_name = M_ARGV(0, string);
+ *     int cmd_argc = M_ARGV(1, int);
  *     if (cmd_name == "echocvar" && cmd_argc >= 2) {
  *         print(cvar_string(argv(1)), "\n");
  *         return true;
@@ -28,9 +24,9 @@ string cmd_string;
  * }
  */
 #define EV_CSQC_ConsoleCommand(i, o) \
-       /** command name */ i(string, cmd_name) \
-       /** also, argv() can be used */ i(int, cmd_argc) \
-       /** whole command, use only if you really have to */ i(string, cmd_string) \
+       /** command name */ i(string, MUTATOR_ARGV_0_string) \
+       /** argc (also, argv() can be used) */ i(int, MUTATOR_ARGV_1_int) \
+       /** whole command, use only if you really have to */ i(string, MUTATOR_ARGV_2_string) \
        /**/
 MUTATOR_HOOKABLE(CSQC_ConsoleCommand, EV_CSQC_ConsoleCommand);
 
@@ -39,13 +35,13 @@ MUTATOR_HOOKABLE(UpdateCrosshair, EV_NO_ARGS);
 
 /** Called when a projectile is linked with CSQC */
 #define EV_Ent_Projectile(i, o) \
-       /** entity id */ i(entity, __self) \
+       /** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
        /**/
 MUTATOR_HOOKABLE(Ent_Projectile, EV_Ent_Projectile);
 
 /** Called when a projectile's properties are being modified */
 #define EV_EditProjectile(i, o) \
-       /** entity id */ i(entity, __self) \
+       /** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
        /**/
 MUTATOR_HOOKABLE(EditProjectile, EV_EditProjectile);
 
@@ -54,25 +50,25 @@ MUTATOR_HOOKABLE(PrecacheProjectiles, EV_NO_ARGS);
 
 /** Called when updating the attached tags index */
 #define EV_TagIndex_Update(i, o) \
-       /** entity id */ i(entity, __self) \
+       /** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
        /**/
 MUTATOR_HOOKABLE(TagIndex_Update, EV_TagIndex_Update);
 
 /** Called when setting the attached tags */
 #define EV_TagIndex_Apply(i, o) \
-       /** entity id */ i(entity, __self) \
+       /** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
        /**/
 MUTATOR_HOOKABLE(TagIndex_Apply, EV_TagIndex_Apply);
 
 /** Called when setting up skeleton bones */
 #define EV_Skeleton_CheckBones(i, o) \
-       /** entity id */ i(entity, __self) \
+       /** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
        /**/
 MUTATOR_HOOKABLE(Skeleton_CheckBones, EV_Skeleton_CheckBones);
 
 /** Called when setting up bones from the loaded model */
 #define EV_Skeleton_CheckModel(i, o) \
-       /** entity id */ i(entity, __self) \
+       /** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
        /**/
 MUTATOR_HOOKABLE(Skeleton_CheckModel, EV_Skeleton_CheckModel);
 
@@ -81,21 +77,20 @@ MUTATOR_HOOKABLE(ClearModelParams, EV_NO_ARGS);
 
 /** Called when getting the global parameters for a model */
 #define EV_GetModelParams(i, o) \
-       /** entity id */ i(string, checkmodel_input) \
-       /** entity id */ i(string, checkmodel_command) \
+       /** input */  i(string, MUTATOR_ARGV_0_string) \
+       /** command */  i(string, MUTATOR_ARGV_1_string) \
        /**/
-string checkmodel_input, checkmodel_command;
 MUTATOR_HOOKABLE(GetModelParams, EV_GetModelParams);
 
 /** Called checking if 3rd person mode should be forced on */
 #define EV_WantEventchase(i, o) \
-       /** entity id */ i(entity, __self) \
+       /** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
        /**/
 MUTATOR_HOOKABLE(WantEventchase, EV_WantEventchase);
 
 #define EV_AnnouncerOption(i, o) \
-       /**/ i(string, ret_string) \
-       /**/ o(string, ret_string) \
+       /** announcer string */  i(string, MUTATOR_ARGV_0_string) \
+       /** announcer string */ o(string, MUTATOR_ARGV_0_string) \
        /**/
 MUTATOR_HOOKABLE(AnnouncerOption, EV_AnnouncerOption);
 
@@ -103,7 +98,7 @@ MUTATOR_HOOKABLE(Ent_Init, EV_NO_ARGS);
 
 #define EV_HUD_Draw_overlay(i, o) \
        /**/ o(vector, MUTATOR_ARGV_0_vector) \
-       /**/ o(float, MUTATOR_ARGV_0_float) \
+       /**/ o(float, MUTATOR_ARGV_1_float) \
        /**/
 MUTATOR_HOOKABLE(HUD_Draw_overlay, EV_HUD_Draw_overlay);
 
@@ -111,23 +106,21 @@ MUTATOR_HOOKABLE(HUD_Powerups_add, EV_NO_ARGS);
 
 /** Return true to not draw any vortex beam */
 #define EV_Particles_VortexBeam(i, o) \
-       /**/ i(vector, vbeam_shotorg) \
-       /**/ i(vector, vbeam_endpos) \
+       /** beam shot origin */  i(vector, MUTATOR_ARGV_0_vector) \
+       /** beam end position */ i(vector, MUTATOR_ARGV_1_vector) \
        /**/
-vector vbeam_shotorg;
-vector vbeam_endpos;
 MUTATOR_HOOKABLE(Particles_VortexBeam, EV_Particles_VortexBeam);
 
 /** Return true to not draw any impact effect */
 #define EV_Weapon_ImpactEffect(i, o) \
-       /**/ i(entity, w_hitwep) \
+       /** weapon */                   i(entity, MUTATOR_ARGV_0_entity) \
+       /** damage entity */    i(entity, MUTATOR_ARGV_1_entity) \
        /**/
-entity w_hitwep;
 MUTATOR_HOOKABLE(Weapon_ImpactEffect, EV_Weapon_ImpactEffect);
 
 /* NOTE: hooks MUST start with if (MUTATOR_RETURNVALUE) return false;
 */
 #define EV_HUD_Command(i, o) \
-       /** also, argv() can be used */ i(int, cmd_argc) \
+       /** argc (also, argv() can be used) */ i(int, MUTATOR_ARGV_0_int) \
        /**/
 MUTATOR_HOOKABLE(HUD_Command, EV_HUD_Command);
index a736d32622cb6b8f470f2334e7bea06c504eb1a0..48579ecbb3018b131203cbe08ea5231a427f560f 100644 (file)
@@ -1,4 +1,7 @@
 #include <lib/_all.inc>
+
+#if XONOTIC
+
 #include "_all.qh"
 
 #include "../client/_mod.inc"
 #include <lib/warpzone/server.qc>
 #include <lib/warpzone/util_server.qc>
 
+#endif
+
+#include <ecs/_lib.inc>
+
 #if BUILD_MOD
 #include "../../mod/client/progs.inc"
 #endif
index e9db990c82d474a07e06ee358dd9f0a99313ece1..6700ba61c7b87cadfee0438093ffdf46a2d5ee7e 100644 (file)
@@ -177,7 +177,7 @@ void Draw_ShowNames_All()
                }
                make_impure(it);
                assert(getthink(entcs), eprint(entcs));
-               WITHSELF(entcs, getthink(entcs)(entcs));
+               getthink(entcs)(entcs);
                if (!entcs.has_origin) continue;
                if (entcs.m_entcs_private)
                {
index dadb8d41d95378b78c6891caa6aeb2af93551fb6..af7eb35b338418556d0ceda77c9690910ff85352 100644 (file)
@@ -766,12 +766,12 @@ bool WantEventchase(entity this)
        return false;
 }
 
-void HUD_Crosshair_Vehicle()
+void HUD_Crosshair_Vehicle(entity this)
 {
        if(hud != HUD_BUMBLEBEE_GUN)
        {
                Vehicle info = Vehicles_from(hud);
-               info.vr_crosshair(info);
+               info.vr_crosshair(info, this);
        }
 }
 
@@ -836,7 +836,7 @@ void HitSound()
                        // todo: avoid very long and very short sounds from wave stretching using different sound files? seems unnecessary
                        // todo: normalize sound pressure levels? seems unnecessary
 
-                       sound7(world, CH_INFO, SND(HIT), VOL_BASE, ATTN_NONE, pitch_shift * 100, 0);
+                       sound7(NULL, CH_INFO, SND(HIT), VOL_BASE, ATTN_NONE, pitch_shift * 100, 0);
                }
                unaccounted_damage = 0;
                hitsound_time_prev = time;
@@ -846,7 +846,7 @@ void HitSound()
        float typehit_time = STAT(TYPEHIT_TIME);
        if (COMPARE_INCREASING(typehit_time, typehit_time_prev) > autocvar_cl_hitsound_antispam_time)
        {
-               sound(world, CH_INFO, SND_TYPEHIT, VOL_BASE, ATTN_NONE);
+               sound(NULL, CH_INFO, SND_TYPEHIT, VOL_BASE, ATTN_NONE);
                typehit_time_prev = typehit_time;
        }
 }
@@ -860,7 +860,7 @@ vector crosshair_getcolor(entity this, float health_stat)
        {
                case 1: // crosshair_color_per_weapon
                {
-                       if(this)
+                       if(this != WEP_Null)
                        {
                                wcross_color = this.wpcolor;
                                break;
@@ -944,7 +944,7 @@ void HUD_Crosshair(entity this)
 
                if (hud != HUD_NORMAL)
                {
-                       HUD_Crosshair_Vehicle();
+                       HUD_Crosshair_Vehicle(this);
                        return;
                }
 
@@ -989,7 +989,7 @@ void HUD_Crosshair(entity this)
                string wcross_name = "";
                float wcross_scale, wcross_blur;
 
-        entity e = this; // wtf?
+        entity e = WEP_Null;
                if(autocvar_crosshair_per_weapon || (autocvar_crosshair_color_special == 1))
                {
                        e = switchingweapon;
@@ -1321,7 +1321,7 @@ void HUD_Draw(entity this)
        if(!intermission)
        if (MUTATOR_CALLHOOK(HUD_Draw_overlay))
        {
-               drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, MUTATOR_ARGV(0, vector), autocvar_hud_colorflash_alpha * MUTATOR_ARGV(0, float), DRAWFLAG_ADDITIVE);
+               drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, M_ARGV(0, vector), autocvar_hud_colorflash_alpha * M_ARGV(1, float), DRAWFLAG_ADDITIVE);
        }
        else if(STAT(FROZEN))
        {
@@ -1369,9 +1369,8 @@ float prev_myteam;
 int lasthud;
 float vh_notice_time;
 void WaypointSprite_Load();
-void CSQC_UpdateView(float w, float h)
+void CSQC_UpdateView(entity this, float w, float h)
 {
-    SELFPARAM();
     TC(int, w); TC(int, h);
        entity e;
        float fov;
@@ -1462,7 +1461,7 @@ void CSQC_UpdateView(float w, float h)
        {
                float vehicle_chase = (hud != HUD_NORMAL && (autocvar_cl_eventchase_vehicle || spectatee_status > 0));
                float ons_roundlost = (gametype == MAPINFO_TYPE_ONSLAUGHT && STAT(ROUNDLOST));
-               entity gen = world;
+               entity gen = NULL;
 
                float vehicle_viewdist = 0;
                vector vehicle_viewofs = '0 0 0';
@@ -2184,7 +2183,7 @@ void CSQC_UpdateView(float w, float h)
 
        scoreboard_active = HUD_WouldDrawScoreboard();
 
-       HUD_Draw(this);
+       HUD_Draw(this); // this parameter for deep vehicle function
 
        if(NextFrameCommand)
        {
index f5adbe7b77ff655f5d930137a0c3b430bca5924c..ab389278d16fcd696d850af106c59947b4108da6 100644 (file)
@@ -10,7 +10,7 @@
 bool monsters_animoverride(entity this)
 {
        Monster monster_id = NULL;
-       FOREACH(Monsters, it != MON_Null && it.model == this.model, {
+       FOREACH(Monsters, it != MON_Null && it.m_model.model_str() == this.model, {
         monster_id = it;
         break;
        });
index 73f1fe65fb4f150da0a5d4108e101535339e9a4c..e69a03f729cf534468c8559314a0ba1e714b3e7b 100644 (file)
@@ -28,7 +28,7 @@ NET_HANDLE(net_effect, bool isNew)
                eff_cnt = ReadByte();
 
        if(eff_trail)
-               WarpZone_TrailParticles(world, particleeffectnum(eff), v, vel);
+               WarpZone_TrailParticles(NULL, particleeffectnum(eff), v, vel);
        else
                pointparticles(eff, v, vel, eff_cnt);
        return true;
index 8cb4a2aa18ff6dcfff9065b62ad01c2b656919af..605d42e671a86dd7cf55b020d720fb1d83ac64ac 100644 (file)
@@ -87,19 +87,19 @@ void Casing_Touch(entity this)
 {
     if (trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
     {
-        Casing_Delete(self);
+        Casing_Delete(this);
         return;
     }
 
-    if (!self.silent)
+    if (!this.silent)
     if (!trace_ent || trace_ent.solid == SOLID_BSP)
     {
-        if(vdist(self.velocity, >, 50))
+        if(vdist(this.velocity, >, 50))
         {
-            if (time >= self.nextthink)
+            if (time >= this.nextthink)
             {
                 Sound s;
-                switch (self.state)
+                switch (this.state)
                 {
                     case 1:
                         s = SND_CASINGS_RANDOM();
@@ -109,12 +109,12 @@ void Casing_Touch(entity this)
                         break;
                 }
 
-                sound (self, CH_SHOTS, s, VOL_BASE, ATTEN_LARGE);
+                sound (this, CH_SHOTS, s, VOL_BASE, ATTEN_LARGE);
             }
         }
     }
 
-    self.nextthink = time + 0.2;
+    this.nextthink = time + 0.2;
 }
 
 void Casing_Damage(entity this, float thisdmg, int hittype, vector org, vector thisforce)
index 30a0a0c9e589e5eeec56602a722e1bbbea8f71a1..c1144d2616c9b58991d5d6e5d5c1af89b340314e 100644 (file)
@@ -273,7 +273,7 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew)
 
        if(DEATH_ISVEHICLE(w_deathtype))
        {
-               traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, world);
+               traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, NULL);
                if(trace_plane_normal != '0 0 0')
                        w_backoff = trace_plane_normal;
                else
@@ -347,7 +347,7 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew)
 
        if(DEATH_ISTURRET(w_deathtype))
        {
-               traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, world);
+               traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, NULL);
                if(trace_plane_normal != '0 0 0')
                        w_backoff = trace_plane_normal;
                else
@@ -408,7 +408,7 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew)
                Weapon hitwep = DEATH_WEAPONOF(w_deathtype);
                w_random = prandom();
 
-               traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, world);
+               traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, NULL);
                if(trace_fraction < 1 && hitwep != WEP_VORTEX && hitwep != WEP_VAPORIZER)
                        w_backoff = trace_plane_normal;
                else
@@ -417,7 +417,7 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew)
 
                if(!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_SKY))
                {
-                       if(!MUTATOR_CALLHOOK(Weapon_ImpactEffect, hitwep))
+                       if(!MUTATOR_CALLHOOK(Weapon_ImpactEffect, hitwep, this))
                                hitwep.wr_impacteffect(hitwep, this);
                }
        }
index 20b050c3a4a633ea225e8e7a2e0f523ce17991f1..bc82b50d0c8e955355afaf0ed491ea0cca7e73c0 100644 (file)
@@ -114,7 +114,7 @@ void new_te_bloodshower (int ef, vector org, float explosionspeed, int howmany)
 void SUB_RemoveOnNoImpact(entity this)
 {
        if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
-               Gib_Delete(self);
+               Gib_Delete(this);
 }
 
 void Gib_Touch(entity this)
@@ -123,15 +123,15 @@ void Gib_Touch(entity this)
 
        if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
        {
-               Gib_Delete(self);
+               Gib_Delete(this);
                return;
        }
 
-       if(!self.silent)
-               sound(self, CH_PAIN, SND_GIB_SPLAT_RANDOM(), VOL_BASE, ATTEN_NORM);
-       __pointparticles(_particleeffectnum(strcat(species_prefix(self.cnt), "blood")), self.origin + '0 0 1', '0 0 30', 10);
+       if(!this.silent)
+               sound(this, CH_PAIN, SND_GIB_SPLAT_RANDOM(), VOL_BASE, ATTEN_NORM);
+       __pointparticles(_particleeffectnum(strcat(species_prefix(this.cnt), "blood")), this.origin + '0 0 1', '0 0 30', 10);
 
-       Gib_Delete(self);
+       Gib_Delete(this);
 }
 
 void Gib_Draw(entity this)
index b6ce6823dc46243d0bafab7ad394fc906704ae68..a2653238e7ebea30ad5a22f26203adf9156c66e1 100644 (file)
                        o.y = ReadCoord();
                        o.z = ReadCoord();
                        // TODO: is this really what we want to be doing? Footsteps that follow the player at head height?
-                       if (who == player_currententnum) e = findfloat(world, entnum, who);  // play at camera position for full volume
+                       if (who == player_currententnum) e = findfloat(NULL, entnum, who);  // play at camera position for full volume
                        else if (e) e.origin = o;
                        if (e)
                        {
                        o.x = ReadCoord();
                        o.y = ReadCoord();
                        o.z = ReadCoord();
-                       if (who == player_currententnum) e = findfloat(world, entnum, who);  // play at camera position for full volume
+                       if (who == player_currententnum) e = findfloat(NULL, entnum, who);  // play at camera position for full volume
                        else if (e) e.origin = o;
                        if (e)
                        {
index d4ec7f993713ee328f066174da1cc849b86f994d..44925cd510cf81c71fe4018b792de9a2f46bda22 100644 (file)
@@ -132,7 +132,7 @@ entity GetVoiceMessage(string type);
                        entity VM = def; \
                        int voicetype = VM.m_playersoundvt; \
                        bool ownteam = (voicetype == VOICETYPE_TEAMRADIO); \
-                       int flood = Say(this, ownteam, world, msg, true); \
+                       int flood = Say(this, ownteam, NULL, msg, true); \
                        bool fake; \
                        if (IS_SPEC(this) || IS_OBSERVER(this) || flood < 0) fake = true; \
                        else if (flood > 0) fake = false; \
index 8a16a1dc3122c2d5d04507175328e52d5db25902..c1c3bb8872c3ea917e51168b90be0a8566d43a75 100644 (file)
@@ -28,8 +28,8 @@ REGISTER_NET_TEMP(TE_CSQC_ARC)
 
 void b_draw()
 {
-    //Draw_CylindricLine(self.fx_start, self.fx_end, self.fx_with, self.fx_texture, 0, time * 3, '1 1 1', 0.7, DRAWFLAG_ADDITIVE, view_origin);
-    Draw_CylindricLine(self.fx_start, self.fx_end, self.fx_with, self.fx_texture, (self.fx_with/256), 0, '1 1 1', 1, DRAWFLAG_ADDITIVE, view_origin);
+    //Draw_CylindricLine(this.fx_start, this.fx_end, this.fx_with, this.fx_texture, 0, time * 3, '1 1 1', 0.7, DRAWFLAG_ADDITIVE, view_origin);
+    Draw_CylindricLine(this.fx_start, this.fx_end, this.fx_with, this.fx_texture, (this.fx_with/256), 0, '1 1 1', 1, DRAWFLAG_ADDITIVE, view_origin);
 
 }
 void b_make(vector s,vector e, string t,float l,float z)
@@ -59,7 +59,7 @@ void b_make(vector s,vector e, string t,float l,float z)
                int steps = min(16, floor(length / seglength));
                if (steps < 1)
                {
-                       te_lightning1(world, from, to);
+                       te_lightning1(NULL, from, to);
                        return;
                }
 
@@ -73,18 +73,18 @@ void b_make(vector s,vector e, string t,float l,float z)
                                float drift = drifts * (1 - (i / steps)) + drifte * (i / steps);
                                vector dirnew = normalize(direction * (1 - drift) + randomvec() * drift);
                                vector pos = pos_l +  dirnew * steplength;
-                               te_lightning1(world, pos_l, pos);
+                               te_lightning1(NULL, pos_l, pos);
                                // WTF endless recursion if branchfactor is 1.0 (possibly due to adding branchfactor_add). FIXME
                                // if(random() < branchfactor)
                                //     cl_effects_lightningarc(pos, pos + (dirnew * length * 0.25),seglength,drifts,drifte,min(branchfactor + branchfactor_add,1),branchfactor_add);
 
                                pos_l = pos;
                        }
-                       te_lightning1(world, pos_l, to);
+                       te_lightning1(NULL, pos_l, to);
                }
                else
                {
-                       te_lightning1(world, from, to);
+                       te_lightning1(NULL, from, to);
                }
        }
 
@@ -102,7 +102,7 @@ void b_make(vector s,vector e, string t,float l,float z)
 
                if (autocvar_cl_effects_lightningarc_simple)
                {
-                       te_lightning1(world, from, to);
+                       te_lightning1(NULL, from, to);
                }
                else
                {
index 6b36b2c53e4a283c43a2f6f5b9b8cd053cdb0d53..7848b7b1f3a31d34d6069c9920ed81359f608952 100644 (file)
@@ -18,7 +18,7 @@ void RubbleLimit(string cname, float limit, void(entity) deleteproc)
        while (1)
        {
                e = findchain(classname, cname);
-               if (e == world) break;
+               if (e == NULL) break;
                // walk the list and count the entities, find the oldest
                // initialize our search with the first entity
                c = 1;
index 75deb92eaf8a5c448a69c7754ade78af4b82cfd7..cafef4868b540cd274de8d2f253fd113a6d43623 100644 (file)
        #undef X
                this.iflags |= IFLAG_ORIGIN;
                InterpolateOrigin_Note(this);
-               WITHSELF(this, getthink(this)(this));
+               getthink(this)(this);
                return true;
        }
 
index 426cab70e151aea46122fac85d0896113cf1319e..46b4e034558b69f45e150d03a8cbf732155dd197 100644 (file)
@@ -63,7 +63,7 @@ float nexball_mode;
 float OtherTeam(float t)  //works only if there are two teams on the map!
 {
        entity e;
-       e = find(world, classname, "nexball_team");
+       e = find(NULL, classname, "nexball_team");
        if(e.team == t)
                e = find(e, classname, "nexball_team");
        return e.team;
@@ -87,7 +87,7 @@ void LogNB(string mode, entity actor)
        if(!autocvar_sv_eventlog)
                return;
        s = strcat(":nexball:", mode);
-       if(actor != world)
+       if(actor != NULL)
                s = strcat(s, ":", ftos(actor.playerid));
        GameLogEcho(s);
 }
@@ -109,7 +109,7 @@ void nexball_setstatus(entity this)
                        bprint("The ", Team_ColoredFullName(this.team), " held the ball for too long.\n");
                        DropBall(this.ballcarried, this.ballcarried.owner.origin, '0 0 0');
                        entity e = this.ballcarried;
-                       WITHSELF(e, ResetBall(e));
+                       ResetBall(e);
                }
                else
                        this.items |= IT_KEY1;
@@ -124,7 +124,7 @@ void relocate_nexball(entity this)
                vector o;
                o = this.origin;
                if(!move_out_of_solid(this))
-                       objerror("could not get out of solid at all!");
+                       objerror(this, "could not get out of solid at all!");
                LOG_INFO("^1NOTE: this map needs FIXING. ", this.classname, " at ", vtos(o - '0 0 1'));
                LOG_INFO(" needs to be moved out of solid, e.g. by '", ftos(this.origin.x - o.x));
                LOG_INFO(" ", ftos(this.origin.y - o.y));
@@ -150,7 +150,7 @@ void GiveBall(entity plyr, entity ball)
        if(ownr)
        {
                ownr.effects &= ~autocvar_g_nexball_basketball_effects_default;
-               ownr.ballcarried = world;
+               ownr.ballcarried = NULL;
                if(ownr.metertime)
                {
                        ownr.metertime = 0;
@@ -196,9 +196,9 @@ void GiveBall(entity plyr, entity ball)
        plyr.(weaponentity).m_switchweapon = PS(plyr).m_weapon;
        plyr.weapons = WEPSET(NEXBALL);
        Weapon w = WEP_NEXBALL;
-       WITHSELF(plyr, w.wr_resetplayer(w, plyr));
+       w.wr_resetplayer(w, plyr);
        PS(plyr).m_switchweapon = WEP_NEXBALL;
-       WITHSELF(plyr, W_SwitchWeapon(plyr, WEP_NEXBALL));
+       W_SwitchWeapon(plyr, WEP_NEXBALL);
 }
 
 void DropBall(entity ball, vector org, vector vel)
@@ -207,7 +207,7 @@ void DropBall(entity ball, vector org, vector vel)
        ball.effects &= ~EF_NOSHADOW;
        ball.owner.effects &= ~autocvar_g_nexball_basketball_effects_default;
 
-       setattachment(ball, world, "");
+       setattachment(ball, NULL, "");
        setorigin(ball, org);
        ball.movetype = MOVETYPE_BOUNCE;
        UNSET_ONGROUND(ball);
@@ -226,11 +226,11 @@ void DropBall(entity ball, vector org, vector vel)
        }
 
        WaypointSprite_Kill(ball.owner.waypointsprite_attachedforcarrier);
-       WaypointSprite_Spawn(WP_NbBall, 0, 0, ball, '0 0 64', world, ball.team, ball, waypointsprite_attachedforcarrier, false, RADARICON_FLAGCARRIER); // no health bar please
+       WaypointSprite_Spawn(WP_NbBall, 0, 0, ball, '0 0 64', NULL, ball.team, ball, waypointsprite_attachedforcarrier, false, RADARICON_FLAGCARRIER); // no health bar please
        WaypointSprite_UpdateRule(ball.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
 
-       ball.owner.ballcarried = world;
-       ball.owner = world;
+       ball.owner.ballcarried = NULL;
+       ball.owner = NULL;
 }
 
 void InitBall(entity this)
@@ -246,11 +246,11 @@ void InitBall(entity this)
        setthink(this, ResetBall);
        this.nextthink = time + autocvar_g_nexball_delay_idle + 3;
        this.teamtime = 0;
-       this.pusher = world;
+       this.pusher = NULL;
        this.team = false;
        _sound(this, CH_TRIGGER, this.noise1, VOL_BASE, ATTEN_NORM);
        WaypointSprite_Ping(this.waypointsprite_attachedforcarrier);
-       LogNB("init", world);
+       LogNB("init", NULL);
 }
 
 void ResetBall(entity this)
@@ -264,7 +264,7 @@ void ResetBall(entity this)
                this.movetype = MOVETYPE_NOCLIP;
                this.velocity = '0 0 0'; // just in case?
                if(!this.cnt)
-                       LogNB("resetidle", world);
+                       LogNB("resetidle", NULL);
                this.cnt = 2;
                this.nextthink = time;
        }
@@ -278,7 +278,7 @@ void ResetBall(entity this)
        else     // step 4
        {
 //             dprint("Step 4: time: ", ftos(time), "\n");
-               if(vlen(this.origin - this.spawnorigin) > 10)  // should not happen anymore
+               if(vdist(this.origin - this.spawnorigin, >, 10)) // should not happen anymore
                        LOG_TRACE("The ball moved too far away from its spawn origin.\nOffset: ",
                                   vtos(this.origin - this.spawnorigin), " Velocity: ", vtos(this.velocity), "\n");
                this.velocity = '0 0 0';
@@ -293,46 +293,46 @@ void football_touch(entity this)
 {
        if(other.solid == SOLID_BSP)
        {
-               if(time > self.lastground + 0.1)
+               if(time > this.lastground + 0.1)
                {
-                       _sound(self, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NORM);
-                       self.lastground = time;
+                       _sound(this, CH_TRIGGER, this.noise, VOL_BASE, ATTEN_NORM);
+                       this.lastground = time;
                }
-               if(vlen(self.velocity) && !self.cnt)
-                       self.nextthink = time + autocvar_g_nexball_delay_idle;
+               if(this.velocity && !this.cnt)
+                       this.nextthink = time + autocvar_g_nexball_delay_idle;
                return;
        }
        if (!IS_PLAYER(other))
                return;
        if(other.health < 1)
                return;
-       if(!self.cnt)
-               self.nextthink = time + autocvar_g_nexball_delay_idle;
+       if(!this.cnt)
+               this.nextthink = time + autocvar_g_nexball_delay_idle;
 
-       self.pusher = other;
-       self.team = other.team;
+       this.pusher = other;
+       this.team = other.team;
 
        if(autocvar_g_nexball_football_physics == -1)   // MrBougo try 1, before decompiling Rev's original
        {
-               if(vlen(other.velocity))
-                       self.velocity = other.velocity * 1.5 + '0 0 1' * autocvar_g_nexball_football_boost_up;
+               if(other.velocity)
+                       this.velocity = other.velocity * 1.5 + '0 0 1' * autocvar_g_nexball_football_boost_up;
        }
        else if(autocvar_g_nexball_football_physics == 1)         // MrBougo's modded Rev style: partially independant of the height of the aiming point
        {
                makevectors(other.v_angle);
-               self.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + '0 0 1' * autocvar_g_nexball_football_boost_up;
+               this.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + '0 0 1' * autocvar_g_nexball_football_boost_up;
        }
        else if(autocvar_g_nexball_football_physics == 2)         // 2nd mod try: totally independant. Really playable!
        {
                makevectors(other.v_angle.y * '0 1 0');
-               self.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + v_up * autocvar_g_nexball_football_boost_up;
+               this.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + v_up * autocvar_g_nexball_football_boost_up;
        }
        else     // Revenant's original style (from the original mod's disassembly, acknowledged by Revenant)
        {
                makevectors(other.v_angle);
-               self.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + v_up * autocvar_g_nexball_football_boost_up;
+               this.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + v_up * autocvar_g_nexball_football_boost_up;
        }
-       self.avelocity = -250 * v_forward;  // maybe there is a way to make it look better?
+       this.avelocity = -250 * v_forward;  // maybe there is a way to make it look better?
 }
 
 void basketball_touch(entity this)
@@ -342,18 +342,18 @@ void basketball_touch(entity this)
                football_touch(this);
                return;
        }
-       if(!self.cnt && IS_PLAYER(other) && !STAT(FROZEN, other) && !IS_DEAD(other) && (other != self.nb_dropper || time > self.nb_droptime + autocvar_g_nexball_delay_collect))
+       if(!this.cnt && IS_PLAYER(other) && !STAT(FROZEN, other) && !IS_DEAD(other) && (other != this.nb_dropper || time > this.nb_droptime + autocvar_g_nexball_delay_collect))
        {
                if(other.health <= 0)
                        return;
                LogNB("caught", other);
-               GiveBall(other, self);
+               GiveBall(other, this);
        }
        else if(other.solid == SOLID_BSP)
        {
-               _sound(self, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NORM);
-               if(vlen(self.velocity) && !self.cnt)
-                       self.nextthink = min(time + autocvar_g_nexball_delay_idle, self.teamtime);
+               _sound(this, CH_TRIGGER, this.noise, VOL_BASE, ATTEN_NORM);
+               if(this.velocity && !this.cnt)
+                       this.nextthink = min(time + autocvar_g_nexball_delay_idle, this.teamtime);
        }
 }
 
@@ -364,14 +364,14 @@ void GoalTouch(entity this)
        string pname;
 
        if(gameover) return;
-       if((self.spawnflags & GOAL_TOUCHPLAYER) && other.ballcarried)
+       if((this.spawnflags & GOAL_TOUCHPLAYER) && other.ballcarried)
                ball = other.ballcarried;
        else
                ball = other;
        if(ball.classname != "nexball_basketball")
                if(ball.classname != "nexball_football")
                        return;
-       if((!ball.pusher && self.team != GOAL_OUT) || ball.cnt)
+       if((!ball.pusher && this.team != GOAL_OUT) || ball.cnt)
                return;
        EXACTTRIGGER_TOUCH;
 
@@ -386,13 +386,13 @@ void GoalTouch(entity this)
        else
                pname = "Someone (?)";
 
-       if(ball.team == self.team)               //owngoal (regular goals)
+       if(ball.team == this.team)               //owngoal (regular goals)
        {
                LogNB("owngoal", ball.pusher);
                bprint("Boo! ", pname, "^7 scored a goal against their own team!\n");
                pscore = -1;
        }
-       else if(self.team == GOAL_FAULT)
+       else if(this.team == GOAL_FAULT)
        {
                LogNB("fault", ball.pusher);
                if(nb_teams == 2)
@@ -401,10 +401,10 @@ void GoalTouch(entity this)
                        bprint(Team_ColoredFullName(ball.team), " loses a point due to ", pname, "^7's silliness.\n");
                pscore = -1;
        }
-       else if(self.team == GOAL_OUT)
+       else if(this.team == GOAL_OUT)
        {
                LogNB("out", ball.pusher);
-               if((self.spawnflags & GOAL_TOUCHPLAYER) && ball.owner)
+               if((this.spawnflags & GOAL_TOUCHPLAYER) && ball.owner)
                        bprint(pname, "^7 went out of bounds.\n");
                else
                        bprint("The ball was returned.\n");
@@ -412,12 +412,12 @@ void GoalTouch(entity this)
        }
        else                                                       //score
        {
-               LogNB(strcat("goal:", ftos(self.team)), ball.pusher);
+               LogNB(strcat("goal:", ftos(this.team)), ball.pusher);
                bprint("Goaaaaal! ", pname, "^7 scored a point for the ", Team_ColoredFullName(ball.team), ".\n");
                pscore = 1;
        }
 
-       _sound(ball, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NONE);
+       _sound(ball, CH_TRIGGER, this.noise, VOL_BASE, ATTEN_NONE);
 
        if(ball.team && pscore)
        {
@@ -443,7 +443,7 @@ void GoalTouch(entity this)
        setthink(ball, ResetBall);
        if(ball.classname == "nexball_basketball")
                settouch(ball, football_touch); // better than func_null: football control until the ball gets reset
-       ball.nextthink = time + autocvar_g_nexball_delay_goal * (self.team != GOAL_OUT);
+       ball.nextthink = time + autocvar_g_nexball_delay_goal * (this.team != GOAL_OUT);
 }
 
 //=======================//
@@ -473,7 +473,7 @@ void nb_spawnteams()
 {
        bool t_red = false, t_blue = false, t_yellow = false, t_pink = false;
        entity e;
-       for(e = world; (e = find(e, classname, "nexball_goal"));)
+       for(e = NULL; (e = find(e, classname, "nexball_goal"));)
        {
                switch(e.team)
                {
@@ -511,7 +511,7 @@ void nb_spawnteams()
 
 void nb_delayedinit(entity this)
 {
-       if(find(world, classname, "nexball_team") == world)
+       if(find(NULL, classname, "nexball_team") == NULL)
                nb_spawnteams();
        nb_ScoreRules(nb_teams);
 }
@@ -609,11 +609,11 @@ spawnfunc(nexball_football)
        SpawnBall(this);
 }
 
-float nb_Goal_Customize()
-{SELFPARAM();
+float nb_Goal_Customize(entity this)
+{
        entity e, wp_owner;
        e = WaypointSprite_getviewentity(other);
-       wp_owner = self.owner;
+       wp_owner = this.owner;
        if(SAME_TEAM(e, wp_owner)) { return false; }
 
        return true;
@@ -629,7 +629,7 @@ void SpawnGoal(entity this)
        {
                entity wp = WaypointSprite_SpawnFixed(WP_NbGoal, (this.absmin + this.absmax) * 0.5, this, sprite, RADARICON_NONE);
                wp.colormod = ((this.team) ? Team_ColorRGB(this.team) : '1 0.5 0');
-               this.sprite.customizeentityforclient = nb_Goal_Customize;
+               setcefc(this.sprite, nb_Goal_Customize);
        }
 
        this.classname = "nexball_goal";
@@ -735,7 +735,7 @@ void W_Nexball_Touch(entity this)
        entity ball, attacker;
        attacker = this.owner;
        //this.think = func_null;
-       //this.enemy = world;
+       //this.enemy = NULL;
 
        PROJECTILE_TOUCH(this);
        if(attacker.team != other.team || autocvar_g_nexball_basketball_teamsteal)
@@ -769,7 +769,7 @@ void W_Nexball_Attack(entity actor, float t)
                return;
 
        W_SetupShot(actor, false, 4, SND_NB_SHOOT1, CH_WEAPON_A, 0);
-       tracebox(w_shotorg, BALL_MINS, BALL_MAXS, w_shotorg, MOVE_WORLDONLY, world);
+       tracebox(w_shotorg, BALL_MINS, BALL_MAXS, w_shotorg, MOVE_WORLDONLY, NULL);
        if(trace_startsolid)
        {
                if(actor.metertime)
@@ -791,7 +791,7 @@ void W_Nexball_Attack(entity actor, float t)
                mul = mi + (ma - mi) * mul; // range from the minimal power to the maximal power
        }
 
-       DropBall(ball, w_shotorg, W_CalculateProjectileVelocity(actor.velocity, w_shotdir * autocvar_g_balance_nexball_primary_speed * mul, false));
+       DropBall(ball, w_shotorg, W_CalculateProjectileVelocity(actor, actor.velocity, w_shotdir * autocvar_g_balance_nexball_primary_speed * mul, false));
 
 
        //TODO: use the speed_up cvar too ??
@@ -838,28 +838,28 @@ void W_Nexball_Attack2(entity actor)
        CSQCProjectile(missile, true, PROJECTILE_ELECTRO, true);
 }
 
-float ball_customize()
-{SELFPARAM();
-       if(!self.owner)
+float ball_customize(entity this)
+{
+       if(!this.owner)
        {
-               self.effects &= ~EF_FLAME;
-               self.scale = 1;
-               self.customizeentityforclient = func_null;
+               this.effects &= ~EF_FLAME;
+               this.scale = 1;
+               setcefc(this, func_null);
                return true;
        }
 
-       if(other == self.owner)
+       if(other == this.owner)
        {
-               self.scale = autocvar_g_nexball_viewmodel_scale;
-               if(self.enemy)
-                       self.effects |= EF_FLAME;
+               this.scale = autocvar_g_nexball_viewmodel_scale;
+               if(this.enemy)
+                       this.effects |= EF_FLAME;
                else
-                       self.effects &= ~EF_FLAME;
+                       this.effects &= ~EF_FLAME;
        }
        else
        {
-               self.effects &= ~EF_FLAME;
-               self.scale = 1;
+               this.effects &= ~EF_FLAME;
+               this.scale = 1;
        }
 
        return true;
@@ -922,63 +922,69 @@ void nb_DropBall(entity player)
 }
 
 MUTATOR_HOOKFUNCTION(nb, ClientDisconnect)
-{SELFPARAM();
-       nb_DropBall(self);
-       return false;
+{
+       entity player = M_ARGV(0, entity);
+
+       nb_DropBall(player);
 }
 
 MUTATOR_HOOKFUNCTION(nb, PlayerDies)
 {
+       entity frag_target = M_ARGV(2, entity);
+
        nb_DropBall(frag_target);
-       return false;
 }
 
 MUTATOR_HOOKFUNCTION(nb, MakePlayerObserver)
-{SELFPARAM();
-       nb_DropBall(self);
+{
+       entity player = M_ARGV(0, entity);
+
+       nb_DropBall(player);
        return false;
 }
 
 MUTATOR_HOOKFUNCTION(nb, PlayerPreThink)
-{SELFPARAM();
-       makevectors(self.v_angle);
+{
+       entity player = M_ARGV(0, entity);
+
+       makevectors(player.v_angle);
        if(nexball_mode & NBM_BASKETBALL)
        {
-               if(self.ballcarried)
+               if(player.ballcarried)
                {
                        // 'view ball'
-                       self.ballcarried.velocity = self.velocity;
-                       self.ballcarried.customizeentityforclient = ball_customize;
+                       player.ballcarried.velocity = player.velocity;
+                       setcefc(player.ballcarried, ball_customize);
 
-                       vector org = self.origin + self.view_ofs +
+                       vector org = player.origin + player.view_ofs +
                                          v_forward * autocvar_g_nexball_viewmodel_offset.x +
                                          v_right * autocvar_g_nexball_viewmodel_offset.y +
                                          v_up * autocvar_g_nexball_viewmodel_offset.z;
-                       setorigin(self.ballcarried, org);
+                       setorigin(player.ballcarried, org);
 
                        // 'safe passing'
                        if(autocvar_g_nexball_safepass_maxdist)
                        {
-                               if(self.ballcarried.wait < time && self.ballcarried.enemy)
+                               if(player.ballcarried.wait < time && player.ballcarried.enemy)
                                {
-                                       //centerprint(self, sprintf("Lost lock on %s", self.ballcarried.enemy.netname));
-                                       self.ballcarried.enemy = world;
+                                       //centerprint(player, sprintf("Lost lock on %s", player.ballcarried.enemy.netname));
+                                       player.ballcarried.enemy = NULL;
                                }
 
 
-                               //tracebox(self.origin + self.view_ofs, '-2 -2 -2', '2 2 2', self.origin + self.view_ofs + v_forward * autocvar_g_nexball_safepass_maxdist);
-                               crosshair_trace(self);
+                               //tracebox(player.origin + player.view_ofs, '-2 -2 -2', '2 2 2', player.origin + player.view_ofs + v_forward * autocvar_g_nexball_safepass_maxdist);
+                               crosshair_trace(player);
                                if( trace_ent &&
                                        IS_CLIENT(trace_ent) &&
                                        !IS_DEAD(trace_ent) &&
-                                       trace_ent.team == self.team &&
-                                       vlen(trace_ent.origin - self.origin) <= autocvar_g_nexball_safepass_maxdist )
+                                       trace_ent.team == player.team &&
+                                       vdist(trace_ent.origin - player.origin, <=, autocvar_g_nexball_safepass_maxdist) )
                                {
 
-                                       //if(self.ballcarried.enemy != trace_ent)
-                                       //      centerprint(self, sprintf("Locked to %s", trace_ent.netname));
-                                       self.ballcarried.enemy = trace_ent;
-                                       self.ballcarried.wait = time + autocvar_g_nexball_safepass_holdtime;
+                                       //if(player.ballcarried.enemy != trace_ent)
+                                       //      centerprint(player, sprintf("Locked to %s", trace_ent.netname));
+                                       player.ballcarried.enemy = trace_ent;
+                                       player.ballcarried.wait = time + autocvar_g_nexball_safepass_holdtime;
 
 
                                }
@@ -987,42 +993,43 @@ MUTATOR_HOOKFUNCTION(nb, PlayerPreThink)
                else
                {
                        .entity weaponentity = weaponentities[0]; // TODO
-                       if(self.(weaponentity).weapons)
+                       if(player.(weaponentity).weapons)
                        {
-                               self.weapons = self.(weaponentity).weapons;
+                               player.weapons = player.(weaponentity).weapons;
                                Weapon w = WEP_NEXBALL;
-                               w.wr_resetplayer(w, self);
-                               PS(self).m_switchweapon = self.(weaponentity).m_switchweapon;
-                               W_SwitchWeapon(self, PS(self).m_switchweapon);
+                               w.wr_resetplayer(w, player);
+                               PS(player).m_switchweapon = player.(weaponentity).m_switchweapon;
+                               W_SwitchWeapon(player, PS(player).m_switchweapon);
 
-                               self.(weaponentity).weapons = '0 0 0';
+                               player.(weaponentity).weapons = '0 0 0';
                        }
                }
 
        }
 
-       nexball_setstatus(self);
-
-       return false;
+       nexball_setstatus(player);
 }
 
 MUTATOR_HOOKFUNCTION(nb, SpectateCopy)
 {
-       SELFPARAM();
-       this.metertime = other.metertime;
+       entity spectatee = M_ARGV(0, entity);
+       entity client = M_ARGV(1, entity);
+
+       client.metertime = spectatee.metertime;
 }
 
 MUTATOR_HOOKFUNCTION(nb, PlayerSpawn)
 {
-       SELFPARAM();
-       this.metertime = 0;
+       entity player = M_ARGV(0, entity);
+
+       player.metertime = 0;
        .entity weaponentity = weaponentities[0];
-       this.(weaponentity).weapons = '0 0 0';
+       player.(weaponentity).weapons = '0 0 0';
 
        if (nexball_mode & NBM_BASKETBALL)
-               this.weapons |= WEPSET(NEXBALL);
+               player.weapons |= WEPSET(NEXBALL);
        else
-               this.weapons = '0 0 0';
+               player.weapons = '0 0 0';
 
        return false;
 }
@@ -1031,29 +1038,36 @@ MUTATOR_HOOKFUNCTION(nb, PlayerSpawn)
 .float stat_sv_maxspeed;
 
 MUTATOR_HOOKFUNCTION(nb, PlayerPhysics)
-{SELFPARAM();
-       if(self.ballcarried)
+{
+       entity player = M_ARGV(0, entity);
+
+       if(player.ballcarried)
        {
-               self.stat_sv_airspeedlimit_nonqw *= autocvar_g_nexball_basketball_carrier_highspeed;
-               self.stat_sv_maxspeed *= autocvar_g_nexball_basketball_carrier_highspeed;
+               player.stat_sv_airspeedlimit_nonqw *= autocvar_g_nexball_basketball_carrier_highspeed;
+               player.stat_sv_maxspeed *= autocvar_g_nexball_basketball_carrier_highspeed;
        }
-       return false;
 }
 
 MUTATOR_HOOKFUNCTION(nb, ForbidThrowCurrentWeapon)
-{SELFPARAM();
-       return PS(self).m_weapon == WEP_NEXBALL;
+{
+       entity player = M_ARGV(0, entity);
+
+       return PS(player).m_weapon == WEP_NEXBALL;
 }
 
 MUTATOR_HOOKFUNCTION(nb, ForbidDropCurrentWeapon)
-{SELFPARAM();
-       return PS(self).m_weapon == WEP_MORTAR; // TODO: what is this for?
+{
+       entity player = M_ARGV(0, entity);
+
+       return PS(player).m_weapon == WEP_MORTAR; // TODO: what is this for?
 }
 
 MUTATOR_HOOKFUNCTION(nb, FilterItem)
-{SELFPARAM();
-       if(self.classname == "droppedweapon")
-       if(self.weapon == WEP_NEXBALL.m_id)
+{
+       entity item = M_ARGV(0, entity);
+
+       if(item.classname == "droppedweapon")
+       if(item.weapon == WEP_NEXBALL.m_id)
                return true;
 
        return false;
@@ -1061,18 +1075,20 @@ MUTATOR_HOOKFUNCTION(nb, FilterItem)
 
 MUTATOR_HOOKFUNCTION(nb, GetTeamCount)
 {
-       ret_string = "nexball_team";
+       M_ARGV(1, string) = "nexball_team";
        return true;
 }
 
 MUTATOR_HOOKFUNCTION(nb, WantWeapon)
 {
-       ret_float = 0; // weapon is set a few lines later, apparently
+       M_ARGV(1, float) = 0; // weapon is set a few lines later, apparently
        return true;
 }
 
 MUTATOR_HOOKFUNCTION(nb, DropSpecialItems)
 {
+       entity frag_target = M_ARGV(0, entity);
+
        if(frag_target.ballcarried)
                DropBall(frag_target.ballcarried, frag_target.origin, frag_target.velocity);
 
@@ -1081,8 +1097,7 @@ MUTATOR_HOOKFUNCTION(nb, DropSpecialItems)
 
 MUTATOR_HOOKFUNCTION(nb, SendWaypoint)
 {
-       wp_sendflags &= ~0x80;
-       return false;
+       M_ARGV(2, int) &= ~0x80;
 }
 
 REGISTER_MUTATOR(nb, g_nexball)
@@ -1103,7 +1118,7 @@ REGISTER_MUTATOR(nb, g_nexball)
                */
                radar_showennemies = autocvar_g_nexball_radar_showallplayers;
 
-               InitializeEntity(world, nb_delayedinit, INITPRIO_GAMETYPE);
+               InitializeEntity(NULL, nb_delayedinit, INITPRIO_GAMETYPE);
                WEP_NEXBALL.spawnflags &= ~WEP_FLAG_MUTATORBLOCKED;
 
                ActivateTeamplay();
index 28ac85d79c460054f8df240d8de9bb7a3ff70c3f..8389b22dae1ee0945aceb633a91592dadaeb8917 100644 (file)
@@ -111,7 +111,7 @@ void cpicon_construct(entity this)
        setmodel(this, MDL_ONS_CP);
        setsize(this, CPICON_MIN, CPICON_MAX);
 
-       if(this.icon_realmodel == world)
+       if(this.icon_realmodel == NULL)
        {
                this.icon_realmodel = spawn();
                setmodel(this.icon_realmodel, MDL_Null);
index 0870ed6bfa323b0811b504b9d7db39330c9fd19a..9a30445ace86c042517f62ede9b19a360e0dbdfb 100644 (file)
@@ -162,32 +162,32 @@ void FixSize(entity e);
 // CaptureShield Functions
 // =======================
 
-bool ons_CaptureShield_Customize()
-{SELFPARAM();
+bool ons_CaptureShield_Customize(entity this)
+{
        entity e = WaypointSprite_getviewentity(other);
 
-       if(!self.enemy.isshielded && (ons_ControlPoint_Attackable(self.enemy, e.team) > 0 || self.enemy.classname != "onslaught_controlpoint")) { return false; }
-       if(SAME_TEAM(self, e)) { return false; }
+       if(!this.enemy.isshielded && (ons_ControlPoint_Attackable(this.enemy, e.team) > 0 || this.enemy.classname != "onslaught_controlpoint")) { return false; }
+       if(SAME_TEAM(this, e)) { return false; }
 
        return true;
 }
 
 void ons_CaptureShield_Touch(entity this)
 {
-       if(!self.enemy.isshielded && (ons_ControlPoint_Attackable(self.enemy, other.team) > 0 || self.enemy.classname != "onslaught_controlpoint")) { return; }
+       if(!this.enemy.isshielded && (ons_ControlPoint_Attackable(this.enemy, other.team) > 0 || this.enemy.classname != "onslaught_controlpoint")) { return; }
        if(!IS_PLAYER(other)) { return; }
-       if(SAME_TEAM(other, self)) { return; }
+       if(SAME_TEAM(other, this)) { return; }
 
-       vector mymid = (self.absmin + self.absmax) * 0.5;
+       vector mymid = (this.absmin + this.absmax) * 0.5;
        vector othermid = (other.absmin + other.absmax) * 0.5;
 
-       Damage(other, self, self, 0, DEATH_HURTTRIGGER.m_id, mymid, normalize(othermid - mymid) * ons_captureshield_force);
+       Damage(other, this, this, 0, DEATH_HURTTRIGGER.m_id, mymid, normalize(othermid - mymid) * ons_captureshield_force);
 
        if(IS_REAL_CLIENT(other))
        {
                play2(other, SND(ONS_DAMAGEBLOCKEDBYSHIELD));
 
-               if(self.enemy.classname == "onslaught_generator")
+               if(this.enemy.classname == "onslaught_generator")
                        Send_Notification(NOTIF_ONE, other, MSG_CENTER, CENTER_ONS_GENERATOR_SHIELDED);
                else
                        Send_Notification(NOTIF_ONE, other, MSG_CENTER, CENTER_ONS_CONTROLPOINT_SHIELDED);
@@ -209,7 +209,7 @@ void ons_CaptureShield_Spawn(entity generator, bool is_generator)
        shield.colormap = generator.colormap;
        shield.reset = ons_CaptureShield_Reset;
        settouch(shield, ons_CaptureShield_Touch);
-       shield.customizeentityforclient = ons_CaptureShield_Customize;
+       setcefc(shield, ons_CaptureShield_Customize);
        shield.effects = EF_ADDITIVE;
        shield.movetype = MOVETYPE_NOCLIP;
        shield.solid = SOLID_TRIGGER;
@@ -378,19 +378,19 @@ bool ons_Link_Send(entity this, entity to, int sendflags)
        WriteByte(MSG_ENTITY, sendflags);
        if(sendflags & 1)
        {
-               WriteCoord(MSG_ENTITY, self.goalentity.origin_x);
-               WriteCoord(MSG_ENTITY, self.goalentity.origin_y);
-               WriteCoord(MSG_ENTITY, self.goalentity.origin_z);
+               WriteCoord(MSG_ENTITY, this.goalentity.origin_x);
+               WriteCoord(MSG_ENTITY, this.goalentity.origin_y);
+               WriteCoord(MSG_ENTITY, this.goalentity.origin_z);
        }
        if(sendflags & 2)
        {
-               WriteCoord(MSG_ENTITY, self.enemy.origin_x);
-               WriteCoord(MSG_ENTITY, self.enemy.origin_y);
-               WriteCoord(MSG_ENTITY, self.enemy.origin_z);
+               WriteCoord(MSG_ENTITY, this.enemy.origin_x);
+               WriteCoord(MSG_ENTITY, this.enemy.origin_y);
+               WriteCoord(MSG_ENTITY, this.enemy.origin_z);
        }
        if(sendflags & 4)
        {
-               WriteByte(MSG_ENTITY, self.clientcolors); // which is goalentity's color + enemy's color * 16
+               WriteByte(MSG_ENTITY, this.clientcolors); // which is goalentity's color + enemy's color * 16
        }
        return true;
 }
@@ -416,10 +416,10 @@ void ons_Link_CheckUpdate(entity this)
 
 void ons_DelayedLinkSetup(entity this)
 {
-       this.goalentity = find(world, targetname, this.target);
-       this.enemy = find(world, targetname, this.target2);
-       if(!this.goalentity) { objerror("can not find target\n"); }
-       if(!this.enemy) { objerror("can not find target2\n"); }
+       this.goalentity = find(NULL, targetname, this.target);
+       this.enemy = find(NULL, targetname, this.target2);
+       if(!this.goalentity) { objerror(this, "can not find target\n"); }
+       if(!this.enemy) { objerror(this, "can not find target2\n"); }
 
        LOG_DEBUG(strcat(etos(this.goalentity), " linked with ", etos(this.enemy), "\n"));
        this.SendFlags |= 3;
@@ -530,12 +530,12 @@ void ons_ControlPoint_Icon_Damage(entity this, entity inflictor, entity attacker
        {
                sound(this, CH_TRIGGER, SND_GRENADE_IMPACT, VOL_BASE, ATTEN_NORM);
                pointparticles(EFFECT_ROCKET_EXPLODE, this.origin, '0 0 0', 1);
-               Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_NUM(this.team, INFO_ONSLAUGHT_CPDESTROYED), this.owner.message, attacker.netname);
+               Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(this.team, INFO_ONSLAUGHT_CPDESTROYED), this.owner.message, attacker.netname);
 
                PlayerScore_Add(attacker, SP_ONS_TAKES, 1);
                PlayerScore_Add(attacker, SP_SCORE, 10);
 
-               this.owner.goalentity = world;
+               this.owner.goalentity = NULL;
            &nb