diff --git a/ParoxysmII/source/Makefile b/ParoxysmII/source/Makefile index 77f8c60..9d2800d 100644 --- a/ParoxysmII/source/Makefile +++ b/ParoxysmII/source/Makefile @@ -5,7 +5,7 @@ SRC= buttons.r builtins.r client.r combat.r defs.r doors.r dynlight.r \ HEADERS = client.rh paroxysm.rh config.rh -RFLAGS += -DQUAKEWORLD -Wall -Werror -g +RFLAGS += -DQUAKEWORLD -Wall -Werror -g -Cvector-components QFCC = qfcc INSTALLDIR = $(HOME)/.quake/paroxysm/ diff --git a/ParoxysmII/source/client.r b/ParoxysmII/source/client.r index 41561d0..c36e696 100644 --- a/ParoxysmII/source/client.r +++ b/ParoxysmII/source/client.r @@ -103,6 +103,7 @@ entity() FindIntermission = return spot; objerror ("FindIntermission: no spot"); + return nil; }; void() GotoNextMap = @@ -385,6 +386,7 @@ float(entity e) ValidateUser = } return true; */ + return 1; }; /* diff --git a/ParoxysmII/source/combat.r b/ParoxysmII/source/combat.r index 82b97f3..17a783c 100644 --- a/ParoxysmII/source/combat.r +++ b/ParoxysmII/source/combat.r @@ -83,7 +83,7 @@ void (entity targ, entity attacker) Killed = ClientObituary (@self, attacker); @self.takedamage = DAMAGE_NO; - @self.touch = NIL; + @self.touch = nil; @self.effects = 0; /*SERVER diff --git a/ParoxysmII/source/items.r b/ParoxysmII/source/items.r index ea218d1..9a1ff69 100644 --- a/ParoxysmII/source/items.r +++ b/ParoxysmII/source/items.r @@ -403,9 +403,9 @@ weapon_touch void() weapon_touch = { - local float hadammo, best, new = NIL, old; + local float hadammo, best, new = nil, old; local entity stemp; - local float leave = NIL; + local float leave = nil; // For client weapon_switch local float w_switch; if (!(other.flags & FL_CLIENT)) @@ -1218,7 +1218,7 @@ void() Spawn_QuadCore = @self.quadcore = qcore; qcore.nextthink = time + 999999999; - qcore.think = NIL; + qcore.think = nil; }; /*QUAKED item_artifact_super_damage (0 .5 .8) (-16 -16 -24) (16 16 32) diff --git a/ParoxysmII/source/subs.r b/ParoxysmII/source/subs.r index 9c847eb..74ca0db 100644 --- a/ParoxysmII/source/subs.r +++ b/ParoxysmII/source/subs.r @@ -21,6 +21,7 @@ vector() SetMovedir = } @self.angles = '0 0 0'; + return nil; }; /* ================ diff --git a/ParoxysmII/source/triggers.r b/ParoxysmII/source/triggers.r index d48c380..0806d67 100644 --- a/ParoxysmII/source/triggers.r +++ b/ParoxysmII/source/triggers.r @@ -54,7 +54,7 @@ void() multi_trigger = // we can't just remove (@self) here, because this is a touch function // called wheil C code is looping through area links... - @self.touch = NIL; + @self.touch = nil; @self.nextthink = time + 0.1; @self.think = SUB_Remove; } diff --git a/ParoxysmII/source/wall.r b/ParoxysmII/source/wall.r index f9c3c7c..5deb6a9 100644 --- a/ParoxysmII/source/wall.r +++ b/ParoxysmII/source/wall.r @@ -43,7 +43,7 @@ void () brik_touch = if (@self.velocity == '0 0 0') { @self.avelocity = '0 0 0'; @self.solid = SOLID_NOT; - @self.touch = NIL; + @self.touch = nil; @self.think = SUB_Remove; @self.nextthink = time + (2 * random()); return; diff --git a/ParoxysmII/source/weapons.r b/ParoxysmII/source/weapons.r index b1baf2b..af3c057 100644 --- a/ParoxysmII/source/weapons.r +++ b/ParoxysmII/source/weapons.r @@ -1069,7 +1069,7 @@ W_ChangeWeapon void() W_ChangeWeapon = { local float no_ammo = 0; - local float selected = NIL; + local float selected = nil; @self.which_ammo = 0; // Default ammo to shells for SuperShotgun diff --git a/ctf/qwsrc/Makefile b/ctf/qwsrc/Makefile index ff1357c..8cb8eff 100644 --- a/ctf/qwsrc/Makefile +++ b/ctf/qwsrc/Makefile @@ -1,5 +1,5 @@ all: qwprogs.dat qwprogs.dat: progs.src *.qc - qfcc -Werror -Wall -g --advanced + qfcc -Cvector-components -Werror -Wall -g --advanced clean: rm -f core *.dat *.sym progdefs.h diff --git a/ctf/qwsrc/client.qc b/ctf/qwsrc/client.qc index dd8d43c..8f3006c 100644 --- a/ctf/qwsrc/client.qc +++ b/ctf/qwsrc/client.qc @@ -213,6 +213,7 @@ FindIntermission = return spot; objerror ("FindIntermission: no spot"); + return nil; //FIXME need no return }; void () @@ -488,6 +489,7 @@ ValidateUser = return true; */ + return 1; }; /* diff --git a/ctf/qwsrc/subs.qc b/ctf/qwsrc/subs.qc index 88fe78b..a48f9ed 100644 --- a/ctf/qwsrc/subs.qc +++ b/ctf/qwsrc/subs.qc @@ -47,6 +47,7 @@ SetMovedir = } self.angles = '0 0 0'; + return nil; }; void () diff --git a/ctf/src/client.qc b/ctf/src/client.qc index d29e845..cc4bf01 100644 --- a/ctf/src/client.qc +++ b/ctf/src/client.qc @@ -220,6 +220,7 @@ entity() FindIntermission = return spot; objerror ("FindIntermission: no spot"); + return world; //FIXME need noreturn }; diff --git a/ctf/src/subs.qc b/ctf/src/subs.qc index 7d1f1fa..4d19ddd 100644 --- a/ctf/src/subs.qc +++ b/ctf/src/subs.qc @@ -46,6 +46,7 @@ vector() SetMovedir = } self.angles = '0 0 0'; + return '0 0 0'; }; /* diff --git a/ctf/src/teamplay.qc b/ctf/src/teamplay.qc index 57548cf..98c952b 100644 --- a/ctf/src/teamplay.qc +++ b/ctf/src/teamplay.qc @@ -366,6 +366,7 @@ float(float color) TeamColorIsLegal = return TRUE; if( (color == TEAM_COLOR2) && (TEAM_COLOR2 >= 0) ) return TRUE; + return FALSE; }; float(float t) TeamGetShirt = diff --git a/fbxa/bot_ai.qc b/fbxa/bot_ai.qc index d9d4ab1..f1d5393 100644 --- a/fbxa/bot_ai.qc +++ b/fbxa/bot_ai.qc @@ -57,9 +57,9 @@ checks to see if an entity is on the bot's stack -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ --(integer)targetOnstack:(Target)scot +-(integer)targetOnstack:(Target *)scot { - if (scot == NIL) + if (scot == nil) return FALSE; else if (targets[0] == scot) return 1; @@ -83,9 +83,9 @@ LIFO stack, this will be the bot's new targets[0] -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ --(void)targetAdd:(Target)e +-(void)targetAdd:(Target *)e { - if (e == NIL) + if (e == nil) return; if ([self targetOnstack:e]) return; @@ -110,26 +110,26 @@ is gone too. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ --(void)targetDrop:(Target)e +-(void)targetDrop:(Target *)e { switch ([self targetOnstack:e]) { case 1: targets[0] = targets[1]; targets[1] = targets[2]; targets[2] = targets[3]; - targets[3] = NIL; + targets[3] = nil; break; case 2: targets[0] = targets[2]; targets[1] = targets[3]; - targets[2] = targets[3] = NIL; + targets[2] = targets[3] = nil; break; case 3: targets[0] = targets[3]; - targets[1] = targets[2] = targets[3] = NIL; + targets[1] = targets[2] = targets[3] = nil; break; case 4: - targets[0] = targets[1] = targets[2] = targets[3] = NIL; + targets[0] = targets[1] = targets[2] = targets[3] = nil; default: break; } @@ -138,7 +138,7 @@ is gone too. -(void)targetClearAll { - targets[0] = targets[1] = targets[2] = targets[3] = NIL; + targets[0] = targets[1] = targets[2] = targets[3] = nil; } /* @@ -150,18 +150,18 @@ Bot has lost its target. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ --(void)lost:(Target)targ :(integer)success +-(void)lost:(Target *)targ :(integer)success { if (!targ) return; [self targetDrop:targ]; if ([targ classname] == "waypoint") - [(Waypoint)targ clearRouteForBot:self]; + [(Waypoint *)targ clearRouteForBot:self]; // find a new route if (!success) { - targets[0] = targets[1] = targets[2] = targets[3] = NIL; + targets[0] = targets[1] = targets[2] = targets[3] = nil; last_way = [self findWaypoint:current_way]; [Waypoint clearMyRoute:self]; b_aiflags = 0; @@ -172,7 +172,7 @@ Bot has lost its target. if (targ.ent.flags & FL_ITEM) { if (!targ.ent.model) - targ._last = NIL; + targ._last = nil; else targ._last = self; } @@ -192,19 +192,19 @@ removed. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ --(void)checkLost:(Target)targ +-(void)checkLost:(Target *)targ { local vector dist; - if (targ == NIL) + if (targ == nil) return; dist = [targ realorigin] - ent.origin; - dist_z = 0; + dist.z = 0; // waypoints and items are lost if you get close enough to them if ([targ isKindOfClass:[Waypoint class]]) { - local Waypoint way = (Waypoint) targ; + local Waypoint *way = (Waypoint *) targ; if ([way classname] == "waypoint") { if (!(b_aiflags & (AI_SNIPER | AI_AMBUSH))) { if (b_aiflags & AI_RIDE_TRAIN) { @@ -222,7 +222,7 @@ removed. [self lost:way :TRUE]; } } else if ([targ isKindOfClass:[Bot class]]) { - local Bot bot = (Bot) targ; + local Bot *bot = (Bot *) targ; if (bot.ent.health <= 0) [self lost:bot :TRUE]; else if ((coop) || (teamplay && bot.ent.team == ent.team)) { @@ -258,7 +258,7 @@ removed. if (targ.ent.frame) { [self lost:targ :TRUE]; if (ent.enemy == targ.ent) - ent.enemy = NIL; + ent.enemy = nil; // if (target[0]) // [self getPath:target[0] :TRUE]; } @@ -275,9 +275,9 @@ removed. } // lose any target way above the bot's head // FIXME: if the bot can fly in your mod.. - if ((targ.ent.origin_z - ent.origin_z) > 64) { + if ((targ.ent.origin.z - ent.origin.z) > 64) { dist = targ.ent.origin - ent.origin; - dist_z = 0; + dist.z = 0; if (vlen (dist) < 32) if (ent.flags & FL_ONGROUND) if (![self recognizePlat:FALSE]) @@ -328,7 +328,7 @@ based b_aiflags. } } else { if (newt.targetname) { - newt = find (NIL, target, newt.targetname); + newt = find (nil, target, newt.targetname); if (newt.health > 0) { ent.enemy = newt; [self weaponSwitch:1]; @@ -355,7 +355,7 @@ based b_aiflags. b_aiflags &= ~AI_SUPER_JUMP; if ([self canRJ]) { [self jump]; - ent.v_angle_x = b_angle.x = 80; + ent.v_angle.x = b_angle.x = 80; buttons |= 1; } else [self lost: targets[0] :FALSE]; @@ -378,7 +378,7 @@ based b_aiflags. } else { if ([self recognizePlat:FALSE]) { v = realorigin (trace_ent) + trace_ent.origin - ent.origin; - v_z = 0; + v.z = 0; if (vlen (v) < 24) keys &= ~KEY_MOVE; else { @@ -392,7 +392,7 @@ based b_aiflags. newt = [self findThing:"plat"]; if (newt.state != 1) { v = ent.origin - realorigin (newt); - v_z = 0; + v.z = 0; if (vlen (v) > 96) keys &= ~KEY_MOVE; else @@ -434,7 +434,7 @@ confused -(void)path { - local Waypoint jj; + local Waypoint *jj; local entity e, tele; [self checkLost:targets[0]]; @@ -480,12 +480,12 @@ confused // linked doors fix if (trace_ent.owner) trace_ent = trace_ent.owner; - if ((trace_ent.health > 0) && (ent.enemy == NIL)) { + if ((trace_ent.health > 0) && (ent.enemy == nil)) { ent.enemy = trace_ent; [self weaponSwitch:1]; b_aiflags |= AI_BLIND; // nick knack paddy hack } else if (trace_ent.targetname) { - e = find (NIL, target, trace_ent.targetname); + e = find (nil, target, trace_ent.targetname); if (e.health > 0) { ent.enemy = e; [self weaponSwitch:1]; @@ -525,7 +525,7 @@ the bot finds things it wants to kill/grab. // 50 - 90 bot will hunt these as vital items // *!* Make sure you add code to checkLost to remove the target *!* --(integer)priority:(Bot)bot +-(integer)priority:(Bot *)bot { local integer p; @@ -551,7 +551,7 @@ the bot finds things it wants to kill/grab. return p; } --(integer)priorityForThing:(Target)thing +-(integer)priorityForThing:(Target *)thing { local integer p; // This is the most executed function in the bot. Careful what you do here. @@ -572,8 +572,8 @@ the bot finds things it wants to kill/grab. -(void)lookForCrap:(integer)scope { - local Target foe, best = NIL; - local Waypoint way; + local Target *foe, *best = nil; + local Waypoint *way; local integer thatp, bestp; local float radius; @@ -604,7 +604,7 @@ the bot finds things it wants to kill/grab. thatp = [self priorityForThing:way]; if (thatp) if (!scope) - if (!sisible (ent, NIL, way.origin)) + if (!sisible (ent, nil, way.origin)) thatp = 0; if (thatp > bestp) { bestp = thatp; @@ -613,7 +613,7 @@ the bot finds things it wants to kill/grab. way = way.chain; } - if (best == NIL) + if (best == nil) return; if (![self targetOnstack:best]) { [self targetAdd:best]; @@ -665,7 +665,7 @@ generally making the bot look good. view = normalize (view - ent.origin); } view = vectoangles (view); - view_x = view_x * -1; + view.x = view.x * -1; b_angle = view; } else if (targets[0]) { view = [targets[0] realorigin]; @@ -673,7 +673,7 @@ generally making the bot look good. view = view + '0 0 48'; view -= (ent.origin + ent.view_ofs); view = vectoangles (view); - view_x = -view_x; + view.x = -view.x; b_angle = view; } else b_angle.x = 0; @@ -687,7 +687,7 @@ generally making the bot look good. ent.v_angle.x += 360; while (ent.v_angle.x > 180) ent.v_angle.x -= 360; - } else if ((ent.enemy == NIL || ent.enemy.movetype == MOVETYPE_PUSH) + } else if ((ent.enemy == nil || ent.enemy.movetype == MOVETYPE_PUSH) && (targets[0] ? [targets[0] classname] != "player" : 1)) { keys &= ~KEY_LOOK; ent.v_angle = b_angle; @@ -734,9 +734,9 @@ frame, the ai_time limits it's actual updating keys = 0; b_aiflags = 0; [Waypoint clearMyRoute:self]; - targets[0] = targets[1] = targets[2] = targets[3] = NIL; - ent.enemy = NIL; - last_way = NIL; + targets[0] = targets[1] = targets[2] = targets[3] = nil; + ent.enemy = nil; + last_way = nil; return; } diff --git a/fbxa/bot_fight.qc b/fbxa/bot_fight.qc index 1b8f7fc..7c5c390 100644 --- a/fbxa/bot_fight.qc +++ b/fbxa/bot_fight.qc @@ -47,9 +47,9 @@ integer bot_fight_linker; /* weapon_range -_x "sweet spot range" - try to maintain this range if possible -_y minimum range bot can be to be effective (rl/gl) (move away) -_z maximum range bot can be to be effective (lg/axe) (move in) +.x "sweet spot range" - try to maintain this range if possible +.y minimum range bot can be to be effective (rl/gl) (move away) +.z maximum range bot can be to be effective (lg/axe) (move in) */ vector (integer wep) weapon_range = @@ -77,7 +77,7 @@ weapon_range = }; @implementation Bot (Fight) --(float)sizePlayer:(Target)targ +-(float)sizePlayer:(Target *)targ { local float sz; local entity e = targ.ent; @@ -130,7 +130,7 @@ weapon_range = if (waypoint_mode > WM_LOADED) return; - avoid = NIL; + avoid = nil; if (ent.enemy) { v = ent.origin - realorigin (ent.enemy); @@ -142,7 +142,7 @@ weapon_range = } avdist = 256; - foe = find (NIL, classname, "grenade"); + foe = find (nil, classname, "grenade"); while (foe) { flen = vlen (foe.origin - ent.origin); if (flen < avdist) { @@ -152,7 +152,7 @@ weapon_range = foe = find (foe, classname, "grenade"); } if (!avoid) { - foe = find (NIL, classname, "missile"); + foe = find (nil, classname, "missile"); while (foe) { if (foe.owner != ent) { flen = vlen (foe.origin - ent.origin); @@ -164,7 +164,7 @@ weapon_range = foe = find(foe, classname, "missile"); } if (!avoid) { - foe = find(NIL, classname, "spike"); + foe = find(nil, classname, "spike"); while (foe) { if (foe.owner != ent) { flen = vlen(foe.origin - ent.origin); @@ -185,7 +185,7 @@ weapon_range = if (foe.health > 0) { flen = vlen (foe.origin - ent.origin); if (flen < foedist) { - local Target targ = [Target forEntity:foe]; + local Target *targ = [Target forEntity:foe]; tsz = [self sizePlayer:targ]; if (tsz < foesz) { if ([self canSee:targ]) { @@ -202,7 +202,7 @@ weapon_range = } } else { local integer i = 0; - local Bot foe; + local Bot *foe; for (i = 0; i < 32; i++) { if (!(foe = players[i])) continue; if (foe == self) continue; @@ -271,7 +271,7 @@ Pick a weapon based on range / ammo } v = weapon_range (flag); - if (brange < v_y || brange > v_z) + if (brange < v.y || brange > v.z) it &= ~flag; else { if (pulse) @@ -286,10 +286,10 @@ Pick a weapon based on range / ammo // quick little function to stop making him shoot the wrong way ! Argh local float g; - g = angcomp (ent.v_angle_x, b_angle.x); + g = angcomp (ent.v_angle.x, b_angle.x); if (fabs (g) > 30) return; // argh, too far away - g = angcomp (ent.v_angle_y, b_angle.y); + g = angcomp (ent.v_angle.y, b_angle.y); if (fabs (g) > 30) return; // not again! buttons |= 1; @@ -307,13 +307,13 @@ attacking an enemy. local vector v, v1 = '0 0 0', v2 = '0 0 0', org; if (ent.enemy.health <= 0) { - ent.enemy = NIL; + ent.enemy = nil; return; } else if (!ent.enemy.takedamage) { - ent.enemy = NIL; + ent.enemy = nil; return; } else if (![self canSee:[Target forEntity:ent.enemy]]) { - ent.enemy = NIL; + ent.enemy = nil; return; } @@ -323,10 +323,10 @@ attacking an enemy. // decide if I should shoot foedist = vlen (org - ent.origin); v = weapon_range ((integer)ent.weapon); - if (foedist > v_y && foedist < v_z) { + if (foedist > v.y && foedist < v.z) { traceline (ent.origin + ent.view_ofs, - ent.origin + ent.view_ofs + v_forward * v_z, FALSE, ent); - if (vlen(trace_endpos - (ent.origin + ent.view_ofs)) >= v_y) { + ent.origin + ent.view_ofs + v_forward * v.z, FALSE, ent); + if (vlen(trace_endpos - (ent.origin + ent.view_ofs)) >= v.y) { // try to avoid shooting teammates if (trace_ent.classname == "player") if ((trace_ent.team == ent.team && teamplay) || (coop)) @@ -355,19 +355,19 @@ attacking an enemy. v = avoid.velocity; else v = normalize (avoid.origin - ent.origin); - v1_x = v_y; - v1_y = v_y * -1; - v2_x = v_y; - v2_y = v_y * -1; + v1.x = v.y; + v1.y = v.y * -1; + v2.x = v.y; + v2.y = v.y * -1; foedist = vlen (avoid.origin - (ent.origin + v1)); if (foedist < vlen (avoid.origin - (ent.origin + v2))) [self walkmove:v2]; else [self walkmove:v1]; } else if (!(ent.enemy.flags & FL_MONSTER)) { - if (foedist + 32 < v_x) + if (foedist + 32 < v.x) [self walkmove:ent.origin - org]; - else if (foedist - 32 > v_x) + else if (foedist - 32 > v.x) [self walkmove:org - ent.origin]; else if (wallhug) [self walkmove:v_right]; diff --git a/fbxa/bot_misc.qc b/fbxa/bot_misc.qc index 4d89a05..5c17e0f 100644 --- a/fbxa/bot_misc.qc +++ b/fbxa/bot_misc.qc @@ -43,7 +43,7 @@ this notice in its entirety. #include "libfrikbot.h" #include "Array.h" -bot_data_t [32] bot_data = { +bot_data_t bot_data[32] = { {"Vincent", 11, 0}, {"Bishop", 1, 3}, {"Nomad", 13, 2}, @@ -78,7 +78,7 @@ bot_data_t [32] bot_data = { {"Mercury", 10, 5}, }; -Array bot_array; +Array *bot_array; @implementation Bot (Misc) /* @@ -86,31 +86,31 @@ BotName Sets bot's name and colors */ -+(bot_data_t [])name:(integer)r ++(bot_data_t *)name:(integer)r { if (r < 0 || r >= 32) - return NIL; + return nil; return &bot_data[r]; } -+(bot_data_t [])randomName ++(bot_data_t *)randomName { local integer test; - local bot_data_t [] h; + local bot_data_t *h; local entity t; while (1) { test = (integer) (32 * random ()); h = [Bot name:test]; - t = find (NIL, netname, h.name); - if (t == NIL) + t = find (nil, netname, h.name); + if (t == nil) return h; } } +(void)kick { - local Bot ty; + local Bot *ty; if ([bot_array count]) { ty = [bot_array objectAtIndex:0]; @@ -141,10 +141,10 @@ is the entity in the bot's field of view yawn = (yawn + targ.view_ofs) - (ent.origin + ent.view_ofs); yawn = normalize (yawn); yawn = vectoangles (yawn); - g = angcomp (ent.v_angle_x, yawn_x); + g = angcomp (ent.v_angle.x, yawn.x); if (fabs (g) > 45) return FALSE; - g = angcomp (ent.v_angle_y, yawn_y); + g = angcomp (ent.v_angle.y, yawn.y); if (fabs (g) > 60) return FALSE; return TRUE; @@ -183,6 +183,7 @@ sisible = return TRUE; else if (trace_fraction == 1) return TRUE; + return FALSE; }; /* diff --git a/fbxa/bot_move.qc b/fbxa/bot_move.qc index 2387806..a7af29e 100644 --- a/fbxa/bot_move.qc +++ b/fbxa/bot_move.qc @@ -79,17 +79,17 @@ void (vector start, vector mins, vector maxs, vector end, float type, // use mouse emulation anglespeed = 1.5 * real_frametime; // 1.5 is the default cl_anglespeedkey & bot always has +speed - ent.v_angle_y += anglespeed * key_state (keys, KEY_LOOKLEFT) * 140; + ent.v_angle.y += anglespeed * key_state (keys, KEY_LOOKLEFT) * 140; // 140 is default cl_yawspeed - ent.v_angle_y -= anglespeed * key_state (keys, KEY_LOOKRIGHT) * 140; + ent.v_angle.y -= anglespeed * key_state (keys, KEY_LOOKRIGHT) * 140; // 140 is default cl_yawspeed - ent.v_angle_x -= anglespeed * key_state (keys, KEY_LOOKUP) * 150; + ent.v_angle.x -= anglespeed * key_state (keys, KEY_LOOKUP) * 150; // 150 is default cl_pitchspeed - ent.v_angle_x += anglespeed * key_state (keys, KEY_LOOKDOWN) * 150; + ent.v_angle.x += anglespeed * key_state (keys, KEY_LOOKDOWN) * 150; // 150 is default cl_pitchspeed } else { - view.x = angcomp (b_angle.x, ent.v_angle_x); - view.y = angcomp (b_angle.y, ent.v_angle_y); + view.x = angcomp (b_angle.x, ent.v_angle.x); + view.y = angcomp (b_angle.y, ent.v_angle.y); view.z = 0; if (vlen (view) > 30) { mouse_emu += (view * 30); @@ -172,10 +172,10 @@ void (vector start, vector mins, vector maxs, vector end, float type, if (ret && flag) { // afect bot movement too if (keys & KEY_MOVEUP) { - if (trace_ent.velocity_z > 0) + if (trace_ent.velocity.z > 0) keys &= ~KEY_MOVE; } else if (keys & KEY_MOVEDOWN) { - if (trace_ent.velocity_z < 0) + if (trace_ent.velocity.z < 0) keys &= ~KEY_MOVE; } } @@ -189,13 +189,13 @@ void (vector start, vector mins, vector maxs, vector end, float type, local vector keydir; outkeys = 0; - if (sdir_x || sdir_y) { + if (sdir.x || sdir.y) { // Everything is tested against 60 degrees, this allows the bot to // overlap the keys 30 degrees on each diagonal 45 degrees might look // more realistic keydir = vectoangles (sdir); - tang = angcomp (keydir_y, ent.v_angle_y); + tang = angcomp (keydir.y, ent.v_angle.y); if ((tang <= 150) && (tang >= 30)) outkeys |= KEY_MOVELEFT; else if ((tang >= -150) && (tang <= -30)) @@ -205,9 +205,9 @@ void (vector start, vector mins, vector maxs, vector end, float type, else if (fabs(tang) >= 120) outkeys |= KEY_MOVEBACK; } - if (sdir_z > 0.7) + if (sdir.z > 0.7) outkeys |= KEY_MOVEUP; - else if (sdir_z < 0.7) + else if (sdir.z < 0.7) outkeys |= KEY_MOVEDOWN; return outkeys; } @@ -234,7 +234,7 @@ manuever around. if (b_aiflags & AI_PRECISION) return; - disway_z = 0; + disway.z = 0; if (targets[0]) { if (b_aiflags & AI_OBSTRUCTED) { @@ -246,20 +246,20 @@ manuever around. } org = [targets[0] realorigin]; obs_dir = whichway; - disway_x = whichway_y * -1; - disway_y = whichway_x; + disway.x = whichway.y * -1; + disway.y = whichway.x; dist = vlen (org - (ent.origin + disway)); - disway_x = whichway_y; - disway_y = whichway_x * -1; + disway.x = whichway.y; + disway.y = whichway.x * -1; wallhug = (vlen (org - (ent.origin + disway)) > dist); b_aiflags |= AI_OBSTRUCTED; } else { - disway_x = whichway_y * -1; - disway_y = whichway_x; + disway.x = whichway.y * -1; + disway.y = whichway.x; dist = vlen (disway - obs_dir); - disway_x = whichway_y; - disway_y = whichway_x * -1; + disway.x = whichway.y; + disway.y = whichway.x * -1; wallhug = (vlen (disway - obs_dir) < dist); obs_dir = whichway; @@ -285,15 +285,15 @@ Also responsible for jumping gaps. return; ang = normalize(ent.velocity); - ang_z = 0; + ang.z = 0; start = ent.origin + ang * 32; // ahem - start_z = ent.origin_z + ent.maxs_z; + start.z = ent.origin.z + ent.maxs.z; stop = start; - stop_z = ent.origin_z + ent.mins_z; + stop.z = ent.origin.z + ent.mins.z; traceline (start, stop - '0 0 256', TRUE, ent); if (trace_allsolid || trace_startsolid) return; - hgt = trace_endpos_z - stop_z; + hgt = trace_endpos.z - stop.z; if (hgt > 18) { [self jump]; @@ -309,14 +309,14 @@ Also responsible for jumping gaps. test = vlen(trace_endpos - start); if (test <= 20) return; // it's a walkable gap, do nothing - ang_x = ent.velocity_y * -1; - ang_y = ent.velocity_x; + ang.x = ent.velocity.y * -1; + ang.y = ent.velocity.x; ang = normalize (ang); traceline (start - (ang * 10), start + (ang * 10), TRUE, ent); if ((trace_fraction != 1) || trace_startsolid) return; // gap is only 20 wide, walkable ang = ent.velocity; - ang_z = 0; + ang.z = 0; dist = ((540 / sv_gravity) * vlen (ang))/* + 32*/; if (test > dist) { // I can't make it @@ -327,7 +327,7 @@ Also responsible for jumping gaps. } else { if (targets[0]) { stop = [targets[0] realorigin]; - if ((stop_z - ent.origin_z) < -32) + if ((stop.z - ent.origin.z) < -32) return; // safe to fall } [self obstructed: ang :FALSE]; @@ -345,7 +345,7 @@ Also responsible for jumping gaps. } else { if (targets[0]) { stop = [targets[0] realorigin]; - if ((stop_z - ent.origin_z) < -32) + if ((stop.z - ent.origin.z) < -32) return; // safe to fall } [self obstructed: ang :FALSE]; @@ -372,7 +372,7 @@ Also responsible for jumping gaps. if (hgt < -18) { if (targets[0]) { stop = [targets[0] realorigin]; - if ((stop_z - ent.origin_z) < -32) + if ((stop.z - ent.origin.z) < -32) return; // safe to fall } [self jump]; @@ -420,7 +420,7 @@ I have no idea how well it will work way.x = obs_dir.y; way.y = obs_dir.x * -1; } - way_z = 0; + way.z = 0; keys &= ~KEY_MOVE; keys |= [self keysForDir: way]; } @@ -440,7 +440,7 @@ blah local vector way; local float g; - if (targets[0] == NIL) { + if (targets[0] == nil) { makevectors(ent.v_angle); [self walkmove: v_forward]; return; @@ -459,10 +459,10 @@ blah [self recognizePlat: TRUE]; if (b_aiflags & AI_PRECISION) { - g = angcomp (ent.v_angle_x, b_angle.x); + g = angcomp (ent.v_angle.x, b_angle.x); if (fabs (g) > 10) keys &= ~KEY_MOVE; - g = angcomp (ent.v_angle_y, b_angle.y); + g = angcomp (ent.v_angle.y, b_angle.y); if (fabs(g) > 10) keys &= ~KEY_MOVE; } @@ -506,14 +506,14 @@ own waypoints. loopcount--; org = ent.origin + ent.view_ofs; ang = ent.angles; - ang_y = frik_anglemod (ang_y - 90 + (180 * random ())); - ang_x = 0; // avoid upward sloping + ang.y = frik_anglemod (ang.y - 90 + (180 * random ())); + ang.x = 0; // avoid upward sloping makevectors (ang); traceline (org, org + v_forward * 2300, TRUE, ent); if (trace_fraction != 1) { org1 = trace_endpos; ang = normalize (trace_plane_normal); - ang_z = 0; // avoid upward sloping + ang.z = 0; // avoid upward sloping traceline (org1, org1 + (ang * 2300), TRUE, ent); if ((trace_fraction != 1) && (vlen(trace_endpos - org1) >= 64)) { org = trace_endpos; @@ -530,6 +530,6 @@ own waypoints. } } } - b_angle.y = ent.v_angle_y + 10; + b_angle.y = ent.v_angle.y + 10; } @end diff --git a/fbxa/bot_qw.qc b/fbxa/bot_qw.qc index 86b3476..e785525 100644 --- a/fbxa/bot_qw.qc +++ b/fbxa/bot_qw.qc @@ -77,11 +77,11 @@ ClientDisconnected(); // FrikBot #include "cmd.h" #include "editor.h" -integer []bot_way_ref; -integer []bot_move_ref; -integer []bot_chat_ref; -float []stagger_think_ref; -integer []bot_fight_ref; +integer *bot_way_ref; +integer *bot_move_ref; +integer *bot_chat_ref; +float *stagger_think_ref; +integer *bot_fight_ref; void () bot_map_load = @@ -119,7 +119,7 @@ for all variable in the bot... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ -Bot [32] players; +Bot *players[32]; // -------globals----- float real_frametime; @@ -127,7 +127,7 @@ float bot_count, b_options, lasttime; float waypoint_mode, dump_mode; float direct_route; float sv_gravity; -Bot route_table; +Bot *route_table; integer busy_waypoints; float coop = 0; // hack @@ -161,7 +161,7 @@ direct messages to the bots, it crashes quake :-( void (entity e) setspawnparms = { - if (((Bot)e.@this).ishuman) + if (((Bot *)e.@this).ishuman) frik_setspawnparms (e); else SetNewParms (); @@ -170,7 +170,7 @@ setspawnparms = vector (entity e, float sped) aim = { - ((Bot)e.@this).missile_speed = sped; + ((Bot *)e.@this).missile_speed = sped; return frik_aim (e, sped); }; @@ -181,9 +181,9 @@ sound = if (samp == "items/inv3.wav") return; else if (e.classname == "player") - ((Bot)e.@this).b_sound = time + 1; + ((Bot *)e.@this).b_sound = time + 1; else if (other.classname == "player") - ((Bot)other.@this).b_sound = time + 1; + ((Bot *)other.@this).b_sound = time + 1; }; /* @@ -212,10 +212,10 @@ void () ClientDisconnected = { local integer cl_no = ClientNumber (@self); - local Bot p = NIL; + local Bot *p = nil; p = players[cl_no]; - players[cl_no] = NIL; + players[cl_no] = nil; if (p) { local entity e = p.ent; local integer i; @@ -235,7 +235,7 @@ ClientDisconnected = integer (entity cl) ClientNumber = { - local entity e = NIL; + local entity e = nil; local integer f = -1; do { @@ -247,17 +247,16 @@ ClientNumber = return f; }; -Bot (integer whatbot, integer whatskill) -BotConnect = +Bot *BotConnect (integer whatbot, integer whatskill) { local entity cl; - local Bot bot; - local bot_data_t [] name; + local Bot *bot; + local bot_data_t *name; cl = SV_AllocClient (); if (!cl) { bprint (PRINT_HIGH, "Unable to connect a bot, server is full.\n"); - return NIL; + return nil; } if (whatbot) @@ -278,14 +277,14 @@ void () BotImpulses = { local integer f; local string h; - local Target t = @self.@this; + local Target *t = @self.@this; if (t.editor) [EditorState impulse]; switch (@self.impulse) { case 100: - h = infokey (NIL, "skill"); + h = infokey (nil, "skill"); f = (integer) stof (h); BotConnect (0, f); break; @@ -309,7 +308,7 @@ bot_add_f = local integer c = Cmd_Argc (); if (c == 1) { - skill = (integer) stof (infokey (NIL, "skill")); + skill = (integer) stof (infokey (nil, "skill")); } else if (c == 2) { skill = (integer) stof (Cmd_Argv (1)); } else { @@ -364,7 +363,7 @@ signs on to the server. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ -void(Waypoint e1, Waypoint e2, integer flag) DeveloperLightning = +void DeveloperLightning (Waypoint *e1, Waypoint *e2, integer flag) { // used to show waypoint links for debugging WriteByte (MSG_BROADCAST, 23); @@ -383,7 +382,7 @@ void(Waypoint e1, Waypoint e2, integer flag) DeveloperLightning = return [super init]; } -- (id) initWithEntity:(entity) e named:(bot_data_t [])name skill:(integer)skill +- (id) initWithEntity:(entity) e named:(bot_data_t *)name skill:(integer)skill { local integer cl_no = ClientNumber (e); local entity uself; @@ -391,7 +390,7 @@ void(Waypoint e1, Waypoint e2, integer flag) DeveloperLightning = SV_Spawn (e); if (!(self = [super initWithEntity:e])) - return NIL; + return nil; [self add]; @@ -434,7 +433,7 @@ void(Waypoint e1, Waypoint e2, integer flag) DeveloperLightning = local integer cno; if (!(self = [super initWithEntity:e])) - return NIL; + return nil; cno = (integer)e.colormap - 1; b_clientno = cno; @@ -521,7 +520,7 @@ BotFrame = local string h; local integer i; - h = infokey (NIL, "bot_options"); + h = infokey (nil, "bot_options"); b_options = stof (h); // for the sake of speed diff --git a/fbxa/bot_way.qc b/fbxa/bot_way.qc index 07521d6..be5971e 100644 --- a/fbxa/bot_way.qc +++ b/fbxa/bot_way.qc @@ -52,10 +52,10 @@ integer bot_way_linker; @implementation Bot (Way) --(void)deleteWaypoint:(Waypoint)what +-(void)deleteWaypoint:(Waypoint *)what { if (current_way == what) - current_way = NIL; + current_way = nil; [waypoint_array removeObject:what]; [what release]; } @@ -76,9 +76,9 @@ in bot_ai.qc local float tdst, dst; local entity best; dst = 100000; - best = NIL; - t = find (NIL, classname, s); - while (t != NIL) { + best = nil; + t = find (nil, classname, s); + while (t != nil) { tdst = vlen(((t.absmin + t.absmax) * 0.5) - ent.origin); if (tdst < dst) { dst = tdst; @@ -102,23 +102,23 @@ an object. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ --(Waypoint)findRoute:(Waypoint)lastone +-(Waypoint *)findRoute:(Waypoint *)lastone { // kinda like FindWaypoint, only of this bots route though - local Waypoint t, best; + local Waypoint *t, *best; local float dst, tdst; local integer flag; local integer count, i; flag = b_clientflag; dst = 100000; - best = NIL; + best = nil; count = [waypoint_array count]; for (i = 0; i < count; i++) { t = [waypoint_array objectAtIndex:i]; tdst = vlen(t.origin - ent.origin); if ((tdst < dst) && (t.bot_bits & flag)) { - if ((lastone == NIL) || ([lastone isLinkedTo:t])) { + if ((lastone == nil) || ([lastone isLinkedTo:t])) { dst = tdst; best = t; } @@ -140,9 +140,9 @@ different bot. */ --(void)markPath:(Target)this +-(void)markPath:(Target *)this { - local Waypoint t; + local Waypoint *t; local integer flag; [Waypoint clearMyRoute:self]; @@ -153,7 +153,7 @@ different bot. if ([this classname] != "player") this.current_way = t; - if (t.enemy == NIL) { + if (t.enemy == nil) { [self lost:this :FALSE]; if (waypoint_mode == WM_DYNAMIC) route_failed = TRUE; @@ -205,27 +205,27 @@ Boy it's confusing. [Waypoint clearRouteTable]; last_way = [self findWaypoint:current_way]; - if (last_way != NIL) { + if (last_way != nil) { last_way.distance = vlen(last_way.origin - ent.origin); [last_way queueForThink]; last_way.busy = TRUE; busy_waypoints = 1; return TRUE; } else { - route_table = NIL; + route_table = nil; busy_waypoints = 0; return FALSE; } } --(void)getPath:(Target)this :(integer)direct +-(void)getPath:(Target *)this :(integer)direct { - if (this == NIL) + if (this == nil) return; if (route_table == self) { if (busy_waypoints <= 0) { - route_table = NIL; + route_table = nil; [self markPath:this]; } return; @@ -249,7 +249,7 @@ Temporary Marker code -(void)spawnTempWaypoint:(vector)org { - local Waypoint tep; + local Waypoint *tep; if (!temp_way) temp_way = tep = [[Waypoint alloc] init]; @@ -269,7 +269,7 @@ very good all things considered. */ -(void)dynamicWaypoint { - local Waypoint t; + local Waypoint *t; local float dist, dynlink = 0, dynpoint = 0, editor = 0; if (teleport_time > portal_time) { @@ -277,7 +277,7 @@ very good all things considered. dyn_flags = 2; if (!ishuman) { [self lost:targets[0] :TRUE]; - ent.enemy = NIL; + ent.enemy = nil; } } portal_time = teleport_time; @@ -322,7 +322,7 @@ very good all things considered. } } dyn_dest = '0 0 0'; - current_way = NIL; + current_way = nil; dyn_flags = 0; return; } @@ -344,7 +344,7 @@ very good all things considered. // display the links for editor mode if (editor) { if (current_way) { - local Waypoint way = current_way; + local Waypoint *way = current_way; local integer i; for (i = 0; i < 4; i++) { @@ -435,7 +435,7 @@ very good all things considered. } } --(integer)canSee:(Target)targ +-(integer)canSee:(Target *)targ { local float thruwater = 0, pc1 = 0, pc2 = 0; local vector spot1, org; diff --git a/fbxa/chat.r b/fbxa/chat.r index 8ab6a1a..e3a3935 100644 --- a/fbxa/chat.r +++ b/fbxa/chat.r @@ -44,7 +44,7 @@ this notice in its entirety. integer bot_chat_linker; -@static Bot b_originator; +@static Bot *b_originator; @static integer b_topic; /* FBX Topics diff --git a/fbxa/editor.h b/fbxa/editor.h index 41e366d..6598ce2 100644 --- a/fbxa/editor.h +++ b/fbxa/editor.h @@ -8,16 +8,16 @@ @interface EditorState: Object { - ImpulseMenu menu; - ImpulseMenu prev_menu; + ImpulseMenu *menu; + ImpulseMenu *prev_menu; float menu_time; string confirm_text; string confirm_cmd; - Target owner; - Waypoint last_way; + Target *owner; + Waypoint *last_way; integer hold_select; - Bot test_bot; + Bot *test_bot; integer edit_mode; } +main_menu; @@ -62,11 +62,11 @@ +(integer)getHoldSelectState; +(void)toggleHoldSelectState; +(string)getConfirmText; -+(Waypoint)current_way; --(Waypoint)current_way; ++(Waypoint *)current_way; +-(Waypoint *)current_way; +(void)impulse; --(id)initWithOwner:(Target)owner; +-(id)initWithOwner:(Target *)owner; -(void)refresh; @end diff --git a/fbxa/editor.r b/fbxa/editor.r index 3db63e8..0dcf23a 100644 --- a/fbxa/editor.r +++ b/fbxa/editor.r @@ -47,11 +47,11 @@ -(integer) impulse:(integer)imp { - local Waypoint way = NIL; + local Waypoint *way = nil; if ((imp = [super impulse:imp]) == 104) { imp = 0; if (value) - way = (Waypoint) [waypoint_array objectAtIndex:value - 1]; + way = (Waypoint *) [waypoint_array objectAtIndex:value - 1]; value = 0; if (way) setorigin (@self, way.origin - @self.view_ofs); @@ -143,7 +143,7 @@ -(integer) state { - local Waypoint way = [EditorState current_way]; + local Waypoint *way = [EditorState current_way]; if (!way) return 0; return !!(way.flags & mask); @@ -151,7 +151,7 @@ -(void) toggle { - local Waypoint way = [EditorState current_way]; + local Waypoint *way = [EditorState current_way]; if (way) way.flags ^= mask; } @@ -165,16 +165,16 @@ } @end -@static ImpulseListMenu main_menu; -@static ImpulseListMenu waypoint_menu; -@static ImpulseListMenu link_menu; -@static ImpulseListMenu ai_flags_menu; -@static ImpulseListMenu ai_flag2_menu; -@static ImpulseListMenu bot_menu; -@static ImpulseListMenu waylist_menu; +@static ImpulseListMenu *main_menu; +@static ImpulseListMenu *waypoint_menu; +@static ImpulseListMenu *link_menu; +@static ImpulseListMenu *ai_flags_menu; +@static ImpulseListMenu *ai_flag2_menu; +@static ImpulseListMenu *bot_menu; +@static ImpulseListMenu *waylist_menu; -@static ConfirmationMenu confirm_menu; -@static TeleportMenu teleport_menu; +@static ConfirmationMenu *confirm_menu; +@static TeleportMenu *teleport_menu; @static void init_menus (void) { @@ -466,77 +466,88 @@ } @implementation EditorState: Object -+setMenu:(ImpulseMenu)item ++setMenu:(ImpulseMenu *)item { - ((Target) @self.@this).editor.menu = item; - ((Target) @self.@this).editor.menu_time = time; + ((Target *) @self.@this).editor.menu = item; + ((Target *) @self.@this).editor.menu_time = time; + return self; } +main_menu { [EditorState setMenu: main_menu]; + return self; } +waypoint_menu { [EditorState setMenu: waypoint_menu]; + return self; } +link_menu { [EditorState setMenu: link_menu]; + return self; } +ai_flags_menu { dprint ("ai_flags_menu\n"); [EditorState setMenu: ai_flags_menu]; + return self; } +ai_flag2_menu { dprint ("ai_flag2_menu\n"); [EditorState setMenu: ai_flag2_menu]; + return self; } +bot_menu { [EditorState setMenu: bot_menu]; + return self; } +waylist_menu { [EditorState setMenu: waylist_menu]; + return self; } +teleport_to_way { [EditorState setMenu: teleport_menu]; + return self; } +close_menu { - local Target player = (Target) @self.@this; - [EditorState setMenu: NIL]; + local Target *player = (Target *) @self.@this; + [EditorState setMenu: nil]; [Waypoint hideAll]; waypoint_mode = WM_LOADED; [player.editor release]; - player.editor = NIL; + player.editor = nil; + return self; } +move_waypoint { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way) [way setOrigin: @self.origin + @self.view_ofs]; + return self; } +delete_waypoint { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way) { editor.prev_menu = editor.menu; editor.confirm_text = "-- Delete Waypoint --\n\nAre you sure?"; @@ -544,49 +555,54 @@ [EditorState setMenu:confirm_menu]; editor.last_way = way; } + return self; } +make_waypoint { [[Waypoint alloc] initAt: @self.origin + @self.view_ofs]; + return self; } +make_waypoint_link { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; - local Waypoint new = [[Waypoint alloc] + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; + local Waypoint *new = [[Waypoint alloc] initAt: @self.origin + @self.view_ofs]; if (!way || ![way linkWay: new]) sprint (@self, PRINT_HIGH, "Unable to link them\n"); + return self; } +make_way_link_x2 { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; - local Waypoint new = [[Waypoint alloc] + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; + local Waypoint *new = [[Waypoint alloc] initAt: @self.origin + @self.view_ofs]; if (!way || ![way linkWay: new]) sprint (@self, PRINT_HIGH, "Unable to link old to new\n"); if (!way || ![new linkWay: way]) sprint (@self, PRINT_HIGH, "Unable to link new to old\n"); + return self; } +make_way_telelink { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; - local Waypoint new = [[Waypoint alloc] + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; + local Waypoint *new = [[Waypoint alloc] initAt: @self.origin + @self.view_ofs]; if (!way || ![way teleLinkWay: new]) sprint (@self, PRINT_HIGH, "Unable to link them\n"); + return self; } +show_waypoint_info { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; local integer i; if (!way) return self; @@ -603,21 +619,23 @@ i + 1, [way.links[i] id])); } sprint (@self, PRINT_HIGH, "\n\n"); + return self; } +unlink_waypoint { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way) [way clearLinks]; + return self; } +create_link { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way) { editor.prev_menu = editor.menu; editor.confirm_text = "-- Link Ways --\n\nSelect another way"; @@ -625,12 +643,13 @@ [EditorState setMenu:confirm_menu]; editor.last_way = way; } + return self; } +create_telelink { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way) { editor.prev_menu = editor.menu; editor.confirm_text = "-- Telelink Ways --\n\nSelect another way"; @@ -638,12 +657,13 @@ [EditorState setMenu:confirm_menu]; editor.last_way = way; } + return self; } +delete_link { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way) { editor.prev_menu = editor.menu; editor.confirm_text = "-- Delete Link --\n\nSelect another way"; @@ -651,12 +671,13 @@ [EditorState setMenu:confirm_menu]; editor.last_way = way; } + return self; } +create_link_x2 { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way) { editor.prev_menu = editor.menu; editor.confirm_text = "-- Create Link X2 --\n\nSelect another way"; @@ -664,12 +685,13 @@ [EditorState setMenu:confirm_menu]; editor.last_way = way; } + return self; } +delete_link_x2 { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way) { editor.prev_menu = editor.menu; editor.confirm_text = "-- Delete Link X2 --\n\nSelect another way"; @@ -677,12 +699,13 @@ [EditorState setMenu:confirm_menu]; editor.last_way = way; } + return self; } +add_test_bot { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; local integer f; local string h; @@ -690,71 +713,79 @@ sprint (@self, PRINT_HIGH, "already have test bot\n"); return self; } - h = infokey (NIL, "skill"); + h = infokey (nil, "skill"); f = (integer) stof (h); editor.test_bot = BotConnect (0, f); + return self; } +call_test_bot { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; if (editor.test_bot) [editor.test_bot getPath:[Target forEntity:@self] :TRUE]; + return self; } +remove_test_bot { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; if (editor.test_bot) [editor.test_bot disconnect]; + return self; } +stop_test_bot { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; if (editor.test_bot) { [editor.test_bot targetClearAll]; - route_table = NIL; + route_table = nil; } + return self; } +teleport_bot { - local EditorState editor = ((Target) @self.@this).editor; - local Waypoint way = [editor current_way]; + local EditorState *editor = ((Target *) @self.@this).editor; + local Waypoint *way = [editor current_way]; if (way && editor.test_bot) setorigin (editor.test_bot.ent, [way origin]); if (!way) sprint(@self, PRINT_HIGH, "select a waypoint first\n"); + return self; } +delete_all_waypoints { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; editor.prev_menu = editor.menu; editor.confirm_text = "-- Delete ALL Ways --\n\nAre you sure?"; editor.confirm_cmd = "delete all ways"; [EditorState setMenu:confirm_menu]; + return self; } +dump_waypoints { - local PLItem plist = [Waypoint plist]; + local PLItem *plist = [Waypoint plist]; bprint (PRINT_HIGH, [plist write]); bprint (PRINT_HIGH, "\n"); [plist release]; + return self; } +check_for_errors { [Waypoint check:[Target forEntity:@self]]; + return self; } +save_waypoints { local QFile file; - local PLItem plist; + local PLItem *plist; file = QFS_Open ("temp.way", "wt"); if (!file) { @@ -766,13 +797,14 @@ [plist release]; Qclose (file); sprint (@self, PRINT_HIGH, "waypoints saved to temp.way\n"); + return self; } +confirm { - local Target player = (Target) @self.@this; - local EditorState editor = player.editor; + local Target *player = (Target *) @self.@this; + local EditorState *editor = player.editor; switch (editor.confirm_cmd) { case "link ways": if (player.current_way) { @@ -807,57 +839,59 @@ break; case "delete all ways": [Waypoint clearAll]; - player.current_way = editor.last_way = NIL; + player.current_way = editor.last_way = nil; break; case "delete waypoint": [waypoint_array removeObject:editor.last_way]; if (player.current_way == editor.last_way) - player.current_way = NIL; - editor.last_way = NIL; + player.current_way = nil; + editor.last_way = nil; break; } [EditorState setMenu: editor.prev_menu]; + return self; } +cancel { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; [EditorState setMenu: editor.prev_menu]; + return self; } +(integer)getHoldSelectState { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; return editor.hold_select != 0; } +(void)toggleHoldSelectState { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; editor.hold_select = !editor.hold_select; } +(string)getConfirmText { - local EditorState editor = ((Target) @self.@this).editor; + local EditorState *editor = ((Target *) @self.@this).editor; return editor.confirm_text; } -+(Waypoint)current_way ++(Waypoint *)current_way { - return ((Target) @self.@this).current_way; + return ((Target *) @self.@this).current_way; } --(Waypoint)current_way +-(Waypoint *)current_way { return owner.current_way; } +(void)impulse { - local Target player = (Target) @self.@this; - local EditorState editor = player.editor; + local Target *player = (Target *) @self.@this; + local EditorState *editor = player.editor; if (!editor) { if (@self.impulse != 104) @@ -874,7 +908,7 @@ } } --(id)initWithOwner:(Target)owner +-(id)initWithOwner:(Target *)owner { if (!main_menu) init_menus (); diff --git a/fbxa/impulse_menu.h b/fbxa/impulse_menu.h index 8a73374..d4993d7 100644 --- a/fbxa/impulse_menu.h +++ b/fbxa/impulse_menu.h @@ -49,9 +49,9 @@ @interface ImpulseListMenu: ImpulseMenu { - MenuItem [10]items; + MenuItem *items[10]; } -- (void) addItem:(MenuItem)item; +- (void) addItem:(MenuItem *)item; @end #endif//__impulse_menu_h diff --git a/fbxa/impulse_menu.r b/fbxa/impulse_menu.r index 2b6303f..c0abd62 100644 --- a/fbxa/impulse_menu.r +++ b/fbxa/impulse_menu.r @@ -115,7 +115,7 @@ local string str = text; local string s; local integer i; - local string [10] is; + local string is[10]; local integer max_len = 0, len; for (i = 0; i < 10; i++) { @@ -139,7 +139,7 @@ return str; } -- (void) addItem:(MenuItem) item +- (void) addItem:(MenuItem *) item { local integer i; diff --git a/fbxa/libfrikbot.h b/fbxa/libfrikbot.h index 8c92675..c2abc5b 100644 --- a/fbxa/libfrikbot.h +++ b/fbxa/libfrikbot.h @@ -15,20 +15,20 @@ typedef struct bot_data_t bot_data_t; @interface Target: Entity { @public - Waypoint current_way; + Waypoint *current_way; integer hold_select; - Target _last; - EditorState editor; + Target *_last; + EditorState *editor; } -+(Target)forEntity:(entity)e; ++(Target *)forEntity:(entity)e; -(vector)realorigin; -(vector)origin; --(integer)canSee:(Target)targ ignoring:(entity)ignore; +-(integer)canSee:(Target *)targ ignoring:(entity)ignore; -(void)setOrigin:(vector) org; -(integer)recognizePlat:(integer)flag; -(integer)ishuman; --(integer)priority:(Bot)bot; --(Waypoint)findWaypoint:(Waypoint)start; +-(integer)priority:(Bot *)bot; +-(Waypoint *)findWaypoint:(Waypoint *)start; -(float)searchTime; -(void)setSearchTime:(float)st; -(string)classname; @@ -37,7 +37,7 @@ typedef struct bot_data_t bot_data_t; @interface Waypoint: Target { @public - Waypoint [4] links; + Waypoint *links[4]; integer flags; vector origin; @@ -46,21 +46,21 @@ typedef struct bot_data_t bot_data_t; integer bot_bits; integer busy; //??? float distance; - Waypoint enemy; + Waypoint *enemy; float search_time; - Waypoint chain; + Waypoint *chain; } +(void)loadFile:(string)path; +(void)clearAll; -+(Waypoint)waypointForNum:(integer)num; ++(Waypoint *)waypointForNum:(integer)num; +(void)fixWaypoints; -+(PLItem)plist; -+(void)check:(Target)ent; ++(PLItem *)plist; ++(void)check:(Target *)ent; +(void)clearRouteTable; -+(void)clearMyRoute:(Bot) bot; -+(Waypoint)find:(vector)org radius:(float)rad; ++(void)clearMyRoute:(Bot *) bot; ++(Waypoint *)find:(vector)org radius:(float)rad; +(void)showAll; +(void)hideAll; @@ -72,22 +72,22 @@ typedef struct bot_data_t bot_data_t; -(id)initAt:(vector)org; -(id)initFromEntity:(entity)ent; --(integer)isLinkedTo:(Waypoint)way; --(integer)linkWay:(Waypoint)way; --(integer)teleLinkWay:(Waypoint)way; --(void)unlinkWay:(Waypoint)way; +-(integer)isLinkedTo:(Waypoint *)way; +-(integer)linkWay:(Waypoint *)way; +-(integer)teleLinkWay:(Waypoint *)way; +-(void)unlinkWay:(Waypoint *)way; --(void)followLink:(Waypoint)e2 :(integer)bBit; +-(void)followLink:(Waypoint *)e2 :(integer)bBit; -(void)waypointThink; -(void)clearLinks; -(void)clearRoute; --(void)clearRouteForBot:(Bot)bot; +-(void)clearRouteForBot:(Bot *)bot; -(id)queueForThink; @end @class Array; -@extern Array waypoint_array; +@extern Array *waypoint_array; @interface Bot: Target { @@ -119,9 +119,9 @@ typedef struct bot_data_t bot_data_t; integer dyn_flags; integer dyn_plat; float dyn_time; - Waypoint temp_way; - Waypoint last_way; - Target [4] targets; + Waypoint *temp_way; + Waypoint *last_way; + Target *targets[4]; entity avoid; vector obs_dir; vector b_dir; @@ -132,7 +132,7 @@ typedef struct bot_data_t bot_data_t; float portal_time; } - (id) init; -- (id) initWithEntity: (entity) e named:(bot_data_t [])name skill:(integer)skill; +- (id) initWithEntity: (entity) e named:(bot_data_t *)name skill:(integer)skill; - (id) initFromPlayer: (entity) e; - (void) preThink; - (void) postThink; @@ -144,8 +144,8 @@ typedef struct bot_data_t bot_data_t; @end @interface Bot (Misc) -+(bot_data_t [])name:(integer)r; -+(bot_data_t [])randomName; ++(bot_data_t *)name:(integer)r; ++(bot_data_t *)randomName; -(integer)fov:(entity)targ; +(void)kick; @@ -167,22 +167,22 @@ typedef struct bot_data_t bot_data_t; @end @interface Bot (AI) --(integer)targetOnstack:(Target)scot; --(void)targetAdd:(Target)e; --(void)targetDrop:(Target)e; +-(integer)targetOnstack:(Target *)scot; +-(void)targetAdd:(Target *)e; +-(void)targetDrop:(Target *)e; -(void)targetClearAll; --(void)lost:(Target)targ :(integer)success; --(void)checkLost:(Target)targ; +-(void)lost:(Target *)targ :(integer)success; +-(void)checkLost:(Target *)targ; -(void)handleAI; -(void)path; -(void)lookForCrap:(integer)scope; -(void)angleSet; -(void)AI; --(integer)priorityForThing:(Target)thing; +-(integer)priorityForThing:(Target *)thing; @end @interface Bot (Fight) --(float)sizePlayer:(Target)targ; +-(float)sizePlayer:(Target *)targ; -(void)dodgeStuff; -(void)weaponSwitch:(float)brange; -(void)shoot; @@ -190,16 +190,16 @@ typedef struct bot_data_t bot_data_t; @end @interface Bot (Way) --(void)deleteWaypoint:(Waypoint)what; +-(void)deleteWaypoint:(Waypoint *)what; -(entity)findThing:(string)s; --(Waypoint)findRoute:(Waypoint)lastone; --(void)markPath:(Target)this; --(void)getPath:(Target)this :(integer)direct; +-(Waypoint *)findRoute:(Waypoint *)lastone; +-(void)markPath:(Target *)this; +-(void)getPath:(Target *)this :(integer)direct; -(integer)beginRoute; -(void)spawnTempWaypoint:(vector)org; -(void)dynamicWaypoint; --(integer)canSee:(Target)targ; +-(integer)canSee:(Target *)targ; @end @interface Bot (Chat) @@ -285,7 +285,7 @@ typedef struct bot_data_t bot_data_t; #define OPT_NOCHAT 2 // -------globals----- -@extern Bot [32] players; +@extern Bot *players[32]; @extern float real_frametime; @extern float bot_count, b_options; @extern float lasttime; @@ -293,14 +293,14 @@ typedef struct bot_data_t bot_data_t; @extern float dump_mode; @extern float direct_route; @extern float sv_gravity; -@extern Bot route_table; +@extern Bot *route_table; @extern integer busy_waypoints; @extern float coop; // -------ProtoTypes------ // external, in main code -@extern Bot (integer whatbot, integer whatskill) BotConnect; +@extern Bot *BotConnect (integer whatbot, integer whatskill); @extern void() ClientConnect; @extern void() ClientDisconnect; @extern void() SetNewParms; @@ -318,13 +318,13 @@ typedef struct bot_data_t bot_data_t; @extern void () map_dm6; // ai & misc -@extern Array bot_array; +@extern Array *bot_array; @extern float(float y1, float y2) angcomp; @extern float(entity ent, entity targ, vector targ_origin) sisible; @extern vector(entity ent) realorigin; @extern float(float v) frik_anglemod; -@extern void(Waypoint e1, Waypoint e2, integer flag) DeveloperLightning; +@extern void DeveloperLightning(Waypoint *e1, Waypoint *e2, integer flag); /* angles is pitch yaw roll diff --git a/fbxa/target.r b/fbxa/target.r index 3da04f3..dcdc1b8 100644 --- a/fbxa/target.r +++ b/fbxa/target.r @@ -53,34 +53,35 @@ struct target_s { @defs (Target) }; -@static unsigned (void []ele, void []unused) target_get_hash = +@static unsigned target_get_hash (void *ele, void *unused) { - local Target t = ele; - return ((unsigned[])&t.ent)[0]; + local Target *t = ele; + //return ((unsigned*)&t.ent)[0]; + return nil;//FIXME }; -@static integer (void []e1, void[]e2, void []unused) target_compare = +@static integer target_compare (void *e1, void*e2, void *unused) { - local Target t1 = e1; - local Target t2 = e2; + local Target *t1 = e1; + local Target *t2 = e2; return t1.ent == t2.ent; }; @implementation Target -+(Target)forEntity:(entity)e ++(Target *)forEntity:(entity)e { - local Target t; + local Target *t; local struct target_s ele; if (!e) - return NIL; + return nil; if (e.classname == "player") return e.@this; if (!target_tab) { - target_tab = Hash_NewTable (1021, NIL, NIL, NIL); + target_tab = Hash_NewTable (1021, nil, nil, nil); Hash_SetHashCompare (target_tab, target_get_hash, target_compare); } ele.ent = e; @@ -103,7 +104,7 @@ struct target_s { return ent.origin; } --(integer)canSee:(Target)targ ignoring:(entity)ignore +-(integer)canSee:(Target *)targ ignoring:(entity)ignore { local vector spot1, spot2; @@ -129,7 +130,7 @@ struct target_s { { local vector org = [self origin]; traceline (org, org - '0 0 64', TRUE, ent); - if (trace_ent != NIL) + if (trace_ent != nil) return TRUE; else return FALSE; @@ -140,7 +141,7 @@ struct target_s { return 0; } --(integer)priority:(Bot)bot +-(integer)priority:(Bot *)bot { if ((ent.flags & FL_ITEM) && ent.model && ent.search_time < time) { // ugly hack @@ -203,9 +204,9 @@ functions big lag causer Finds the closest, fisible, waypoint to e */ --(Waypoint)findWaypoint:(Waypoint)start +-(Waypoint *)findWaypoint:(Waypoint *)start { - local Waypoint best, t; + local Waypoint *best, *t; local float dst, tdst; local vector org; local integer count, i; @@ -218,7 +219,7 @@ Finds the closest, fisible, waypoint to e best = start; } else { dst = 100000; - best = NIL; + best = nil; } count = [waypoint_array count]; for (i = 0; i < count; i++) { @@ -229,7 +230,7 @@ Finds the closest, fisible, waypoint to e if (!(t.flags & AI_IGNORE_TYPES) || ishuman) { tdst = vlen (t.origin - org); if (tdst < dst) { - if (sisible (ent, NIL, t.origin)) { + if (sisible (ent, nil, t.origin)) { dst = tdst; best = t; } diff --git a/fbxa/waypoint.r b/fbxa/waypoint.r index 7d28179..d533905 100644 --- a/fbxa/waypoint.r +++ b/fbxa/waypoint.r @@ -50,9 +50,9 @@ this notice in its entirety. #include "string.h" #include "PropertyList.h" -Array waypoint_array; +Array *waypoint_array; @static entity waypoint_thinker; -@static List waypoint_queue; +@static List *waypoint_queue; @static void () waypoint_init = { @@ -79,7 +79,7 @@ Array waypoint_array; { if (!waypoint_array) waypoint_init (); - return [super initWithEntity:NIL]; + return [super initWithEntity:nil]; } -(id)initAt:(vector)org @@ -93,13 +93,13 @@ Array waypoint_array; return self; } --(id)initAt:(vector)org linkedTo:(integer[])link flags:(integer)flag +-(id)initAt:(vector)org linkedTo:(integer*)link flags:(integer)flag { self = [self initAt:org]; - links[0] = (Waypoint) link[0]; - links[1] = (Waypoint) link[1]; - links[2] = (Waypoint) link[2]; - links[3] = (Waypoint) link[3]; + links[0] = (Waypoint *) link[0]; + links[1] = (Waypoint *) link[1]; + links[2] = (Waypoint *) link[2]; + links[3] = (Waypoint *) link[3]; flags = flag; return self; } @@ -108,6 +108,7 @@ Array waypoint_array; { [self initAt:ent.origin]; //FIXME do entity based init + return self; } -(void)dealloc @@ -136,10 +137,10 @@ Array waypoint_array; -(void)clearLinks { - links[0] = links[1] = links[2] = links[3] = NIL; + links[0] = links[1] = links[2] = links[3] = nil; } --(integer)isLinkedTo:(Waypoint)way +-(integer)isLinkedTo:(Waypoint *)way { local integer i; @@ -156,7 +157,7 @@ Array waypoint_array; return 0; } --(integer)linkWay:(Waypoint)way +-(integer)linkWay:(Waypoint *)way { local integer i; @@ -175,7 +176,7 @@ Array waypoint_array; } // Link Ways part 2, used only for teleporters --(integer)teleLinkWay:(Waypoint)way +-(integer)teleLinkWay:(Waypoint *)way { local integer i; @@ -194,7 +195,7 @@ Array waypoint_array; return 0; } --(void)unlinkWay:(Waypoint)way +-(void)unlinkWay:(Waypoint *)way { local integer i; @@ -206,7 +207,7 @@ Array waypoint_array; for (i = 0; i < 4; i++) { if (links[i] == way) { flags &= ~(AI_TELELINK_1 << i); - links[i] = NIL; + links[i] = nil; } } } @@ -222,7 +223,7 @@ Waypoint Loading from file +(void)loadFile:(string)path { local QFile file; - local PLItem plist; + local PLItem *plist; local string plist_data; local integer i, count; @@ -238,26 +239,26 @@ Waypoint Loading from file [Waypoint clearAll]; - count = [(PLArray)plist numObjects]; + count = [(PLArray *)plist numObjects]; dprint (sprintf ("%i waypoints\n", count)); for (i = 0; i < count; i++) { - local PLDictionary way = (PLDictionary) [(PLArray) plist getObjectAtIndex:i]; - local PLString s = (PLString) [way getObjectForKey:"origin"]; + local PLDictionary *way = (PLDictionary *) [(PLArray *) plist getObjectAtIndex:i]; + local PLString *s = (PLString *) [way getObjectForKey:"origin"]; local vector org = stov (sprintf ("'%s'", [s string])); - local PLArray links = (PLArray) [way getObjectForKey:"link"]; + local PLArray *links = (PLArray *) [way getObjectForKey:"link"]; //FIXME compiler/vm "bug" makes passing pointers to locals dangerous - s = (PLString) [way getObjectForKey:"flags"]; + s = (PLString *) [way getObjectForKey:"flags"]; local integer flags = stoi ([s string]); - @static integer[4] link; - s = (PLString) [links getObjectAtIndex:0]; + @static integer link[4]; + s = (PLString *) [links getObjectAtIndex:0]; link[0] = stoi ([s string]); - s = (PLString) [links getObjectAtIndex:1]; + s = (PLString *) [links getObjectAtIndex:1]; link[1] = stoi ([s string]); - s = (PLString) [links getObjectAtIndex:2]; + s = (PLString *) [links getObjectAtIndex:2]; link[2] = stoi ([s string]); - s = (PLString) [links getObjectAtIndex:3]; + s = (PLString *) [links getObjectAtIndex:3]; link[3] = stoi ([s string]); [[Waypoint alloc] initAt:org linkedTo:link flags:flags]; @@ -273,10 +274,10 @@ Waypoint Loading from file waypoint_init (); } -+(Waypoint)waypointForNum:(integer)num ++(Waypoint *)waypointForNum:(integer)num { if (!num) - return NIL; + return nil; return [waypoint_array objectAtIndex:num - 1]; } @@ -326,10 +327,10 @@ Waypoint Loading from file //[waypoint_array makeObjectsPerformSelector:@selector(debug)]; } --(void)plitem:(PLItem)list +-(void)plitem:(PLItem *)list { - local PLDictionary way = (PLDictionary) [PLItem newDictionary]; - local PLArray l = (PLArray) [PLItem newArray]; + local PLDictionary *way = (PLDictionary *) [PLItem newDictionary]; + local PLArray *l = (PLArray *) [PLItem newArray]; local integer i; [way addKey:"origin" value:[PLItem newString:sprintf ("%g %g %g", @@ -344,18 +345,18 @@ Waypoint Loading from file } [way addKey:"link" value:l]; [way addKey:"flags" value:[PLItem newString:itos (flags)]]; - [(PLArray) list addObject:way]; + [(PLArray *) list addObject:way]; } -+(PLItem) plist ++(PLItem *) plist { - local PLItem list = [PLItem newArray]; + local PLItem *list = [PLItem newArray]; [waypoint_array makeObjectsPerformSelector:@selector(plitem:) withObject:list]; return list; } --(void) checkWay:(Target)ent +-(void) checkWay:(Target *)ent { local integer i; for (i = 0; i < 4; i++) @@ -372,18 +373,18 @@ Waypoint Loading from file sprintf ("Waypoitn %i links to itself\n", [self id])); } -+(void) check:(Target)ent ++(void) check:(Target *)ent { [waypoint_array makeObjectsPerformSelector:@selector(checkWay) withObject:ent]; } -+(Waypoint)find:(vector)org radius:(float)rad ++(Waypoint *)find:(vector)org radius:(float)rad { local vector dif; local float dist; local integer i, count; - local Waypoint way = NIL, w; + local Waypoint *way = nil, *w; rad = rad * rad; // radius squared @@ -423,7 +424,7 @@ Waypoint Loading from file { if (ent) { remove (ent); - ent = NIL; + ent = nil; own = 0; } } @@ -458,7 +459,7 @@ Route & path table management -(void)clearRoute { busy = FALSE; - enemy = NIL; + enemy = nil; distance = -1; // not in table } @@ -468,12 +469,12 @@ Route & path table management [waypoint_array makeObjectsPerformSelector:@selector (clearRoute)]; } --(void)clearRouteForBot:(Bot)bot +-(void)clearRouteForBot:(Bot *)bot { bot_bits &= ~bot.b_clientflag; } -+(void)clearMyRoute:(Bot) bot ++(void)clearMyRoute:(Bot *) bot { [waypoint_array makeObjectsPerformSelector:@selector (clearRouteForBot:) withObject:bot]; @@ -490,7 +491,7 @@ tripping the runaway loop counter -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ --(void)followLink:(Waypoint)e2 :(integer)bBit +-(void)followLink:(Waypoint *)e2 :(integer)bBit { local float dist; @@ -529,7 +530,7 @@ tripping the runaway loop counter if (flags & AI_TRACE_TEST) { for (i = 0; i < 4; i++) { if (links[i]) { - traceline (origin, links[i].origin, TRUE, /*self*/NIL); + traceline (origin, links[i].origin, TRUE, /*self*/nil); if (trace_fraction == 1) [self followLink:links[i] :AI_TELELINK_1 << i]; } @@ -554,7 +555,7 @@ tripping the runaway loop counter if ((waypoint_thinker.@this = [waypoint_queue removeItemAtHead])) { local id obj = waypoint_thinker.@this; local IMP imp = [obj methodForSelector: @selector (waypointThink)]; - waypoint_thinker.think = (void ()) imp; + waypoint_thinker.think = (void ()()) imp; waypoint_thinker.nextthink = time; } } @@ -565,14 +566,14 @@ tripping the runaway loop counter [waypoint_queue addItemAtTail: self]; } else { local IMP imp = [self methodForSelector: @selector (waypointThink)]; - waypoint_thinker.think = (void ()) imp; + waypoint_thinker.think = (void ()()) imp; waypoint_thinker.nextthink = time; waypoint_thinker.@this = self; } return self; } --(integer)priority:(Bot)bot +-(integer)priority:(Bot *)bot { if (flags & AI_SNIPER) return 30; @@ -609,7 +610,7 @@ BSP/QC Waypoint loading void() waypoint = { - local Waypoint way = [[Waypoint alloc] initFromEntity: @self]; + local Waypoint *way = [[Waypoint alloc] initFromEntity: @self]; }; /* create a new waypoint using frikbot style info @@ -623,11 +624,11 @@ void() waypoint = */ void(vector org, vector bit1, integer bit4, integer flargs) make_way = { - local Waypoint y = [[Waypoint alloc] initAt:org]; + local Waypoint *y = [[Waypoint alloc] initAt:org]; waypoint_mode = WM_LOADED; y.flags = flargs; - y.links[0] = (Waypoint) (integer) bit1_x; - y.links[1] = (Waypoint) (integer) bit1_y; - y.links[2] = (Waypoint) (integer) bit1_z; - y.links[3] = (Waypoint) (integer) bit4; + y.links[0] = (Waypoint *) (integer) bit1.x; + y.links[1] = (Waypoint *) (integer) bit1.y; + y.links[2] = (Waypoint *) (integer) bit1.z; + y.links[3] = (Waypoint *) (integer) bit4; }; diff --git a/klik/Makefile b/klik/Makefile index d04e2a9..eecee04 100644 --- a/klik/Makefile +++ b/klik/Makefile @@ -9,7 +9,7 @@ CPP=cpp CPPFLAGS=-I. -Iweapons -Imdl -Iact -Imapents QFCC=qfcc -QFCCFLAGS=-qg -Wall -Werror $(CPPFLAGS) +QFCCFLAGS=-qg -Cvector-components -Wall -Werror $(CPPFLAGS) ############################################### diff --git a/klik/act/act_player.qc b/klik/act/act_player.qc index ca40bab..a810592 100644 --- a/klik/act/act_player.qc +++ b/klik/act/act_player.qc @@ -686,8 +686,8 @@ player_takeitem = local float eid; nitem = 0; - str1 = NIL; - str2 = NIL; + str1 = nil; + str2 = nil; while ((eid = equip_iter (other)) != -1) { if (equip_query (self, eid)) @@ -714,7 +714,7 @@ player_takeitem = self.armortype = other.armortype; _item_xprint_strs (nitem, str1, str2); - str2 = NIL; + str2 = nil; if (self.armortype >= 0.8) str1 = "strong armor"; else if (self.armortype >= 0.6) diff --git a/klik/client.qc b/klik/client.qc index 4892394..3c659c8 100644 --- a/klik/client.qc +++ b/klik/client.qc @@ -259,6 +259,6 @@ ClientDisconnect = " frags\n"); override_set_th_kill (self, NOTHING_function); - self.deathmsg1 = NIL; + self.deathmsg1 = nil; damage (self, self, self, DAMAGE_MUSTDIE, NOTHING_function); }; diff --git a/klik/mapents/id_compat.qc b/klik/mapents/id_compat.qc index 6131936..97150a4 100644 --- a/klik/mapents/id_compat.qc +++ b/klik/mapents/id_compat.qc @@ -319,7 +319,7 @@ trigger_counter = { util_map_entity_init (); - self.model = NIL; + self.model = nil; self.modelindex = 0; if (!self.count) diff --git a/klik/mapents/mapents_movewall.qc b/klik/mapents/mapents_movewall.qc index 92cc358..02226f7 100644 --- a/klik/mapents/mapents_movewall.qc +++ b/klik/mapents/mapents_movewall.qc @@ -239,8 +239,8 @@ float(float d) _movewall_door_takedamage = { /* Use target if you need it to go more than once */ self.message = ""; - self.noise1 = NIL; - self.noise2 = NIL; + self.noise1 = nil; + self.noise2 = nil; } self = self.enemy; @@ -277,8 +277,8 @@ void() _movewall_door_touch = { /* Use target if you need it to go more than once */ self.message = ""; - self.noise1 = NIL; - self.noise2 = NIL; + self.noise1 = nil; + self.noise2 = nil; } self = self.enemy; } @@ -337,12 +337,12 @@ void() _door_link = { tail.message = ""; - tail.noise1 = NIL; - tail.noise2 = NIL; - tail.noise3 = NIL; - tail.noise4 = NIL; - tail.noise5 = NIL; - tail.noise6 = NIL; + tail.noise1 = nil; + tail.noise2 = nil; + tail.noise3 = nil; + tail.noise4 = nil; + tail.noise5 = nil; + tail.noise6 = nil; } tail.enemy = world; @@ -730,8 +730,8 @@ void() _movewall_secret_use = { void() _movewall_secret_think = { if (floor (self.state) != self.state) { if (self.count == 0 && self.state == 0.5) { - self.message = NIL; - self.noise2 = NIL; + self.message = nil; + self.noise2 = nil; if (!util_use_targets ()) { self.velocity = '0 0 0'; diff --git a/klik/mapents/mapents_powerup.qc b/klik/mapents/mapents_powerup.qc index 917d13f..895ae86 100644 --- a/klik/mapents/mapents_powerup.qc +++ b/klik/mapents/mapents_powerup.qc @@ -82,7 +82,7 @@ void() _powerup_think = { if (powerup.noise) { sound(self, CHAN_AUTO, powerup.noise, 1, ATTN_NORM); - powerup.noise = NIL; + powerup.noise = nil; } powerup.air_finished += 1; @@ -410,7 +410,7 @@ void() _ring_think = { if (powerup.noise) { sound(self, CHAN_AUTO, powerup.noise, 1, ATTN_NORM); - powerup.noise = NIL; + powerup.noise = nil; } powerup.air_finished += 1; diff --git a/klik/mapents/mapents_traps.qc b/klik/mapents/mapents_traps.qc index 2d8019c..37cb36d 100644 --- a/klik/mapents/mapents_traps.qc +++ b/klik/mapents/mapents_traps.qc @@ -89,13 +89,13 @@ void() trap_spikeshooter = { } else if (self.spawnflags & SPAWNFLAG_SUPERSPIKE) { self.weaponmodel = "progs/s_spike.mdl"; self.noise1 = "weapons/spike2.wav"; - self.noise2 = NIL; + self.noise2 = nil; self.speed = 1000; self.dmg = 18; } else { self.weaponmodel = "progs/spike.mdl"; self.noise1 = "weapons/spike2.wav"; - self.noise2 = NIL; + self.noise2 = nil; self.speed = 1000; self.dmg = 9; } diff --git a/klik/mapents/mapents_triggers.qc b/klik/mapents/mapents_triggers.qc index e0afd2c..7fc2c76 100644 --- a/klik/mapents/mapents_triggers.qc +++ b/klik/mapents/mapents_triggers.qc @@ -153,7 +153,7 @@ void() trigger_teleport = { self.noise = "ambience/hum1.wav"; setmodel(self, self.model); - self.model = NIL; + self.model = nil; self.modelindex = 0; util_map_entity_init(); diff --git a/klik/mapents/mapents_util.qc b/klik/mapents/mapents_util.qc index 957a693..ea33731 100644 --- a/klik/mapents/mapents_util.qc +++ b/klik/mapents/mapents_util.qc @@ -131,9 +131,9 @@ float() util_use_targets = { if (self.count > 0) { self.count--; if (!self.count) { - self.targetname = NIL; - self.target = NIL; - self.killtarget = NIL; + self.targetname = nil; + self.target = nil; + self.killtarget = nil; self.use = NOTHING_function; self.touch = NOTHING_function; diff --git a/klik/misc.qc b/klik/misc.qc index dac5de7..6fc1432 100644 --- a/klik/misc.qc +++ b/klik/misc.qc @@ -33,7 +33,7 @@ safe_remove = { e.takedamage = DAMAGE_NO; e.solid = SOLID_NOT; - e.model = NIL; + e.model = nil; e.modelindex = 0; e.think = SUB_remove; diff --git a/nqw/Makefile b/nqw/Makefile index 8a6bc7a..c03388c 100644 --- a/nqw/Makefile +++ b/nqw/Makefile @@ -1,5 +1,5 @@ all: spprogs.dat spprogs.dat: progs.src *.qc - qfcc -Werror -g --advanced + qfcc -Cvector-components -Werror -g --advanced clean: rm -f core *.dat *.sym progdefs.h diff --git a/nqw/client.qc b/nqw/client.qc index affc95d..7765776 100644 --- a/nqw/client.qc +++ b/nqw/client.qc @@ -121,6 +121,7 @@ FindIntermission = return spot; objerror ("FindIntermission: no spot"); + return nil; //FIXME need noreturn }; void () @@ -567,6 +568,7 @@ ValidateUser = return true; */ + return 1; }; /* diff --git a/nqw/subs.qc b/nqw/subs.qc index 50ef543..627469a 100644 --- a/nqw/subs.qc +++ b/nqw/subs.qc @@ -18,6 +18,7 @@ vector() SetMovedir = } self.angles = '0 0 0'; + return nil; }; /* diff --git a/nqw/wizard.qc b/nqw/wizard.qc index 42205ed..e9caae5 100644 --- a/nqw/wizard.qc +++ b/nqw/wizard.qc @@ -158,6 +158,7 @@ float() WizardAttackFinished = self.attack_state = AS_SLIDING; self.think = wiz_side1; } + return 0; }; // FAST ATTACKS =============================================================== diff --git a/paroxysm/quake/Makefile b/paroxysm/quake/Makefile index b809699..b7a10c3 100644 --- a/paroxysm/quake/Makefile +++ b/paroxysm/quake/Makefile @@ -1,5 +1,5 @@ all: progs.dat progs.dat: progs.src *.qc - qfcc -Werror -g --advanced + qfcc -Cvector-components -Werror -g --advanced clean: rm -f core *.dat *.sym progdefs.h diff --git a/paroxysm/quake/botspawn.qc b/paroxysm/quake/botspawn.qc index e05d9a2..d3b0285 100644 --- a/paroxysm/quake/botspawn.qc +++ b/paroxysm/quake/botspawn.qc @@ -30,7 +30,7 @@ float (string st) check_bot_name = } botname = find(botname, classname, "bot"); } - + return FALSE; }; string() bot_name = diff --git a/paroxysm/quake/client.qc b/paroxysm/quake/client.qc index 6dce430..60f8039 100644 --- a/paroxysm/quake/client.qc +++ b/paroxysm/quake/client.qc @@ -99,6 +99,7 @@ entity() FindIntermission = return spot; objerror ("FindIntermission: no spot"); + return nil; }; diff --git a/paroxysm/quake/subs.qc b/paroxysm/quake/subs.qc index 2265d93..d76c8b3 100644 --- a/paroxysm/quake/subs.qc +++ b/paroxysm/quake/subs.qc @@ -22,6 +22,7 @@ vector() SetMovedir = } self.angles = '0 0 0'; + return nil; }; /* diff --git a/paroxysm/quakeworld/Makefile b/paroxysm/quakeworld/Makefile index acbee5d..05b569f 100644 --- a/paroxysm/quakeworld/Makefile +++ b/paroxysm/quakeworld/Makefile @@ -1,5 +1,5 @@ all: qwprogs.dat qwprogs.dat: progs.src *.qc - qfcc -Werror -g --advanced + qfcc -Cvector-components -Werror -g --advanced clean: rm -f core *.dat *.sym progdefs.h diff --git a/paroxysm/quakeworld/client.qc b/paroxysm/quakeworld/client.qc index 46b9d1b..087be59 100644 --- a/paroxysm/quakeworld/client.qc +++ b/paroxysm/quakeworld/client.qc @@ -94,6 +94,7 @@ entity() FindIntermission = return spot; objerror ("FindIntermission: no spot"); + return nil; }; void() GotoNextMap = @@ -385,6 +386,7 @@ float(entity e) ValidateUser = } return true; */ + return 1; }; /* =========== diff --git a/paroxysm/quakeworld/subs.qc b/paroxysm/quakeworld/subs.qc index abe0d68..47e7915 100644 --- a/paroxysm/quakeworld/subs.qc +++ b/paroxysm/quakeworld/subs.qc @@ -18,6 +18,7 @@ vector() SetMovedir = } self.angles = '0 0 0'; + return nil; }; /* ================ diff --git a/quake/Makefile b/quake/Makefile index 8ae29d3..09f778e 100644 --- a/quake/Makefile +++ b/quake/Makefile @@ -1,5 +1,5 @@ all: progs.dat progs.dat: progs.src *.qc - qfcc -Nwarn -Wall -Werror -g --advanced + qfcc -Cvector-components -Nwarn -Wall -Werror -g --advanced clean: rm -f core *.dat *.sym progdefs.h *.i? *.p diff --git a/quake/bringback.qc b/quake/bringback.qc index 92298d6..060fd1c 100644 --- a/quake/bringback.qc +++ b/quake/bringback.qc @@ -51,7 +51,7 @@ if (random() < 0.5) { //Not PO'd anymore. - self.enemy = NIL; + self.enemy = nil; self.th_walk(); } else diff --git a/quake/client.qc b/quake/client.qc index d9e27cf..7f3bd60 100644 --- a/quake/client.qc +++ b/quake/client.qc @@ -124,6 +124,7 @@ entity() FindIntermission = return spot; objerror ("FindIntermission: no spot"); + return nil; //FIXME need noreturn }; string nextmap; diff --git a/quake/defs.qc b/quake/defs.qc index 71561e5..43f5b8f 100644 --- a/quake/defs.qc +++ b/quake/defs.qc @@ -491,8 +491,6 @@ float AS_MISSILE = 4; .string mdl; .vector mangle; // angle at start -.vector oldorigin; // only used by secret door - .float t_length, t_width; diff --git a/quake/subs.qc b/quake/subs.qc index 01b4b8f..1bafeeb 100644 --- a/quake/subs.qc +++ b/quake/subs.qc @@ -22,6 +22,7 @@ vector() SetMovedir = } self.angles = '0 0 0'; + return '0 0 0'; }; /* diff --git a/quake/wizard.qc b/quake/wizard.qc index 49ddde6..c08fe37 100644 --- a/quake/wizard.qc +++ b/quake/wizard.qc @@ -177,6 +177,7 @@ float() WizardAttackFinished = self.attack_state = AS_SLIDING; self.think = wiz_side1; } + return 0; }; /* diff --git a/quakeworld/Makefile b/quakeworld/Makefile index a2d69c4..97c79be 100644 --- a/quakeworld/Makefile +++ b/quakeworld/Makefile @@ -1,5 +1,5 @@ all: qwprogs.dat qwprogs.dat: progs.src *.qc - qfcc -Werror -Wall -g --advanced + qfcc -Cvector-components -Werror -Wall -g --advanced clean: rm -f core *.dat *.sym progdefs.h *.p *.i1 *.i2 diff --git a/quakeworld/client.qc b/quakeworld/client.qc index feceb53..0a2a7ec 100644 --- a/quakeworld/client.qc +++ b/quakeworld/client.qc @@ -113,6 +113,7 @@ FindIntermission = return spot; objerror ("FindIntermission: no spot"); + return nil; //FIXME need noreturn }; void () @@ -378,8 +379,8 @@ ValidateUser = return false; } - return true; */ + return 1; }; void () DecodeLevelParms; diff --git a/quakeworld/subs.qc b/quakeworld/subs.qc index f6f0716..ba62af5 100644 --- a/quakeworld/subs.qc +++ b/quakeworld/subs.qc @@ -23,6 +23,7 @@ SetMovedir = } self.angles = '0 0 0'; + return '0 0 0'; }; void ()