-void RadarMap(float argc)
-{
- if(radarmapper)
- return;
- float i;
- radarmapper = spawn();
- radarmapper.classname = "radarmapper";
- radarmapper.think = RadarMap_Think;
- radarmapper.nextthink = time;
- radarmapper.count = 8; // default to the --trace method, as it is faster now
- radarmapper.ltime = 1;
- radarmapper.size_x = 512;
- radarmapper.size_y = 512;
- radarmapper.size_z = 1;
-
- for(i = 1; i < argc; ++i)
- {
- if(argv(i) == "--force")
- radarmapper.count |= 1;
- else if(argv(i) == "--loop")
- radarmapper.count |= 2;
- else if(argv(i) == "--quit")
- radarmapper.count |= 4;
- else if(argv(i) == "--block")
- {
- radarmapper.count &~= 24;
- }
- else if(argv(i) == "--trace")
- {
- radarmapper.count &~= 24;
- radarmapper.count |= 8;
- }
- else if(argv(i) == "--sample")
- {
- radarmapper.count &~= 24;
- radarmapper.count |= 16;
- }
- else if(argv(i) == "--lineblock")
- {
- radarmapper.count |= 24;
- }
- else if(argv(i) == "--flags") // for the recursive call
- {
- ++i;
- radarmapper.count = stof(argv(i));
- }
- else if(argv(i) == "--sharpen") // for the recursive call
- {
- ++i;
- radarmapper.ltime = stof(argv(i));
- }
- else if(argv(i) == "--res") // resolution
- {
- ++i;
- radarmapper.size_x = stof(argv(i));
- ++i;
- radarmapper.size_y = stof(argv(i));
- }
- else if(argv(i) == "--qual") // quality multiplier
- {
- ++i;
- radarmapper.size_z = stof(argv(i));
- }
- else
- {
- remove(radarmapper);
- radarmapper = world;
- print("Usage: sv_cmd radarmap [--force] [--loop] [--quit] [--block | --trace | --sample | --lineblock] [--sharpen N] [--res W H] [--qual Q]\n");
- print("The quality factor Q is roughly proportional to the time taken.\n");
- print("--trace supports no quality factor; its result should look like --block with infinite quality factor.\n");
- print("--block \n");
- return;
- }
- }
-
- print("Radarmap entity spawned.\n");
-}
-
-void BBox()
-{
- print("Original size: ", ftos(world.absmin_x), " ", ftos(world.absmin_y), " ", ftos(world.absmin_z));
- print(" ", ftos(world.absmax_x), " ", ftos(world.absmax_y), " ", ftos(world.absmax_z), "\n");
- print("Currently set size: ", ftos(world.mins_x), " ", ftos(world.mins_y), " ", ftos(world.mins_z));
- print(" ", ftos(world.maxs_x), " ", ftos(world.maxs_y), " ", ftos(world.maxs_z), "\n");
- print("Solid bounding box size:");
-
- tracebox('1 0 0' * world.absmin_x,
- '0 1 0' * world.absmin_y + '0 0 1' * world.absmin_z,
- '0 1 0' * world.absmax_y + '0 0 1' * world.absmax_z,
- '1 0 0' * world.absmax_x,
- MOVE_WORLDONLY,
- world);
- if(trace_startsolid)
- print(" ", ftos(world.absmin_x));
- else
- print(" ", ftos(trace_endpos_x));
-
- tracebox('0 1 0' * world.absmin_y,
- '1 0 0' * world.absmin_x + '0 0 1' * world.absmin_z,
- '1 0 0' * world.absmax_x + '0 0 1' * world.absmax_z,
- '0 1 0' * world.absmax_y,
- MOVE_WORLDONLY,
- world);
- if(trace_startsolid)
- print(" ", ftos(world.absmin_y));
- else
- print(" ", ftos(trace_endpos_y));
-
- tracebox('0 0 1' * world.absmin_z,
- '1 0 0' * world.absmin_x + '0 1 0' * world.absmin_y,
- '1 0 0' * world.absmax_x + '0 1 0' * world.absmax_y,
- '0 0 1' * world.absmax_z,
- MOVE_WORLDONLY,
- world);
- if(trace_startsolid)
- print(" ", ftos(world.absmin_z));
- else
- print(" ", ftos(trace_endpos_z));
-
- tracebox('1 0 0' * world.absmax_x,
- '0 1 0' * world.absmin_y + '0 0 1' * world.absmin_z,
- '0 1 0' * world.absmax_y + '0 0 1' * world.absmax_z,
- '1 0 0' * world.absmin_x,
- MOVE_WORLDONLY,
- world);
- if(trace_startsolid)
- print(" ", ftos(world.absmax_x));
- else
- print(" ", ftos(trace_endpos_x));
-
- tracebox('0 1 0' * world.absmax_y,
- '1 0 0' * world.absmin_x + '0 0 1' * world.absmin_z,
- '1 0 0' * world.absmax_x + '0 0 1' * world.absmax_z,
- '0 1 0' * world.absmin_y,
- MOVE_WORLDONLY,
- world);
- if(trace_startsolid)
- print(" ", ftos(world.absmax_y));
- else
- print(" ", ftos(trace_endpos_y));
-
- tracebox('0 0 1' * world.absmax_z,
- '1 0 0' * world.absmin_x + '0 1 0' * world.absmin_y,
- '1 0 0' * world.absmax_x + '0 1 0' * world.absmax_y,
- '0 0 1' * world.absmin_z,
- MOVE_WORLDONLY,
- world);
- if(trace_startsolid)
- print(" ", ftos(world.absmax_z));
- else
- print(" ", ftos(trace_endpos_z));
-
- print("\n");
-}
-
-void EffectIndexDump()
-{
- float d;
- float fh;
- string s;
-
- d = db_create();
-
- print("begin of effects list\n");
- db_put(d, "TE_GUNSHOT", "1"); print("effect TE_GUNSHOT is ", ftos(particleeffectnum("TE_GUNSHOT")), "\n");
- db_put(d, "TE_GUNSHOTQUAD", "1"); print("effect TE_GUNSHOTQUAD is ", ftos(particleeffectnum("TE_GUNSHOTQUAD")), "\n");
- db_put(d, "TE_SPIKE", "1"); print("effect TE_SPIKE is ", ftos(particleeffectnum("TE_SPIKE")), "\n");
- db_put(d, "TE_SPIKEQUAD", "1"); print("effect TE_SPIKEQUAD is ", ftos(particleeffectnum("TE_SPIKEQUAD")), "\n");
- db_put(d, "TE_SUPERSPIKE", "1"); print("effect TE_SUPERSPIKE is ", ftos(particleeffectnum("TE_SUPERSPIKE")), "\n");
- db_put(d, "TE_SUPERSPIKEQUAD", "1"); print("effect TE_SUPERSPIKEQUAD is ", ftos(particleeffectnum("TE_SUPERSPIKEQUAD")), "\n");
- db_put(d, "TE_WIZSPIKE", "1"); print("effect TE_WIZSPIKE is ", ftos(particleeffectnum("TE_WIZSPIKE")), "\n");
- db_put(d, "TE_KNIGHTSPIKE", "1"); print("effect TE_KNIGHTSPIKE is ", ftos(particleeffectnum("TE_KNIGHTSPIKE")), "\n");
- db_put(d, "TE_EXPLOSION", "1"); print("effect TE_EXPLOSION is ", ftos(particleeffectnum("TE_EXPLOSION")), "\n");
- db_put(d, "TE_EXPLOSIONQUAD", "1"); print("effect TE_EXPLOSIONQUAD is ", ftos(particleeffectnum("TE_EXPLOSIONQUAD")), "\n");
- db_put(d, "TE_TAREXPLOSION", "1"); print("effect TE_TAREXPLOSION is ", ftos(particleeffectnum("TE_TAREXPLOSION")), "\n");
- db_put(d, "TE_TELEPORT", "1"); print("effect TE_TELEPORT is ", ftos(particleeffectnum("TE_TELEPORT")), "\n");
- db_put(d, "TE_LAVASPLASH", "1"); print("effect TE_LAVASPLASH is ", ftos(particleeffectnum("TE_LAVASPLASH")), "\n");
- db_put(d, "TE_SMALLFLASH", "1"); print("effect TE_SMALLFLASH is ", ftos(particleeffectnum("TE_SMALLFLASH")), "\n");
- db_put(d, "TE_FLAMEJET", "1"); print("effect TE_FLAMEJET is ", ftos(particleeffectnum("TE_FLAMEJET")), "\n");
- db_put(d, "EF_FLAME", "1"); print("effect EF_FLAME is ", ftos(particleeffectnum("EF_FLAME")), "\n");
- db_put(d, "TE_BLOOD", "1"); print("effect TE_BLOOD is ", ftos(particleeffectnum("TE_BLOOD")), "\n");
- db_put(d, "TE_SPARK", "1"); print("effect TE_SPARK is ", ftos(particleeffectnum("TE_SPARK")), "\n");
- db_put(d, "TE_PLASMABURN", "1"); print("effect TE_PLASMABURN is ", ftos(particleeffectnum("TE_PLASMABURN")), "\n");
- db_put(d, "TE_TEI_G3", "1"); print("effect TE_TEI_G3 is ", ftos(particleeffectnum("TE_TEI_G3")), "\n");
- db_put(d, "TE_TEI_SMOKE", "1"); print("effect TE_TEI_SMOKE is ", ftos(particleeffectnum("TE_TEI_SMOKE")), "\n");
- db_put(d, "TE_TEI_BIGEXPLOSION", "1"); print("effect TE_TEI_BIGEXPLOSION is ", ftos(particleeffectnum("TE_TEI_BIGEXPLOSION")), "\n");
- db_put(d, "TE_TEI_PLASMAHIT", "1"); print("effect TE_TEI_PLASMAHIT is ", ftos(particleeffectnum("TE_TEI_PLASMAHIT")), "\n");
- db_put(d, "EF_STARDUST", "1"); print("effect EF_STARDUST is ", ftos(particleeffectnum("EF_STARDUST")), "\n");
- db_put(d, "TR_ROCKET", "1"); print("effect TR_ROCKET is ", ftos(particleeffectnum("TR_ROCKET")), "\n");
- db_put(d, "TR_GRENADE", "1"); print("effect TR_GRENADE is ", ftos(particleeffectnum("TR_GRENADE")), "\n");
- db_put(d, "TR_BLOOD", "1"); print("effect TR_BLOOD is ", ftos(particleeffectnum("TR_BLOOD")), "\n");
- db_put(d, "TR_WIZSPIKE", "1"); print("effect TR_WIZSPIKE is ", ftos(particleeffectnum("TR_WIZSPIKE")), "\n");
- db_put(d, "TR_SLIGHTBLOOD", "1"); print("effect TR_SLIGHTBLOOD is ", ftos(particleeffectnum("TR_SLIGHTBLOOD")), "\n");
- db_put(d, "TR_KNIGHTSPIKE", "1"); print("effect TR_KNIGHTSPIKE is ", ftos(particleeffectnum("TR_KNIGHTSPIKE")), "\n");
- db_put(d, "TR_VORESPIKE", "1"); print("effect TR_VORESPIKE is ", ftos(particleeffectnum("TR_VORESPIKE")), "\n");
- db_put(d, "TR_NEHAHRASMOKE", "1"); print("effect TR_NEHAHRASMOKE is ", ftos(particleeffectnum("TR_NEHAHRASMOKE")), "\n");
- db_put(d, "TR_NEXUIZPLASMA", "1"); print("effect TR_NEXUIZPLASMA is ", ftos(particleeffectnum("TR_NEXUIZPLASMA")), "\n");
- db_put(d, "TR_GLOWTRAIL", "1"); print("effect TR_GLOWTRAIL is ", ftos(particleeffectnum("TR_GLOWTRAIL")), "\n");
- db_put(d, "TR_SEEKER", "1"); print("effect TR_SEEKER is ", ftos(particleeffectnum("TR_SEEKER")), "\n");
- db_put(d, "SVC_PARTICLE", "1"); print("effect SVC_PARTICLE is ", ftos(particleeffectnum("SVC_PARTICLE")), "\n");
-
- fh = fopen("effectinfo.txt", FILE_READ);
- while((s = fgets(fh)))
- {
- tokenize(s); // tokenize_console would hit the loop counter :(
- if(argv(0) == "effect")
- {
- if(db_get(d, argv(1)) != "1")
- {
- if(particleeffectnum(argv(1)) >= 0)
- print("effect ", argv(1), " is ", ftos(particleeffectnum(argv(1))), "\n");
- db_put(d, argv(1), "1");
- }
- }
- }
- print("end of effects list\n");
-
- db_close(d);
-}
-