From: Rene S. <sa...@us...> - 2004-09-12 18:26:13
|
Update of /cvsroot/jake2/jake2/src/jake2/game In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2795/src/jake2/game Modified Files: Monster.java SuperAdapter.java GamePWeapon.java usercmd_t.java GameUtil.java Log Message: fixed an inventory bug and did some cleanups Index: Monster.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/game/Monster.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Monster.java 8 Jul 2004 15:58:44 -0000 1.2 --- Monster.java 12 Sep 2004 18:25:49 -0000 1.3 *************** *** 32,39 **** import java.util.*; ! public class Monster extends GameAI ! { ! // FIXME mosnters should call these with a totally accurate direction // and we can mess it up based on skill. Spread should be for normal // and we can tighten or loosen based on skill. We could muck with --- 32,38 ---- import java.util.*; ! public class Monster extends GameAI { ! // FIXME monsters should call these with a totally accurate direction // and we can mess it up based on skill. Spread should be for normal // and we can tighten or loosen based on skill. We could muck with *************** *** 47,52 **** int hspread, int vspread, ! int flashtype) ! { Fire.fire_bullet(self, start, dir, damage, kick, hspread, vspread, Defines.MOD_UNKNOWN); --- 46,50 ---- int hspread, int vspread, ! int flashtype) { Fire.fire_bullet(self, start, dir, damage, kick, hspread, vspread, Defines.MOD_UNKNOWN); *************** *** 66,71 **** int vspread, int count, ! int flashtype) ! { Fire.fire_shotgun(self, start, aimdir, damage, kick, hspread, vspread, count, Defines.MOD_UNKNOWN); --- 64,68 ---- int vspread, int count, ! int flashtype) { Fire.fire_shotgun(self, start, aimdir, damage, kick, hspread, vspread, count, Defines.MOD_UNKNOWN); *************** *** 83,88 **** int speed, int flashtype, ! int effect) ! { Fire.fire_blaster(self, start, dir, damage, speed, effect, false); --- 80,84 ---- int speed, int flashtype, ! int effect) { Fire.fire_blaster(self, start, dir, damage, speed, effect, false); *************** *** 93,98 **** } /** The Moster fires the grenade. */ ! public static void monster_fire_grenade(edict_t self, float[] start, float[] aimdir, int damage, int speed, int flashtype) ! { Fire.fire_grenade(self, start, aimdir, damage, speed, 2.5f, damage + 40); --- 89,93 ---- } /** The Moster fires the grenade. */ ! public static void monster_fire_grenade(edict_t self, float[] start, float[] aimdir, int damage, int speed, int flashtype) { Fire.fire_grenade(self, start, aimdir, damage, speed, 2.5f, damage + 40); *************** *** 103,108 **** } /** The Moster fires the rocket. */ ! public static void monster_fire_rocket(edict_t self, float[] start, float[] dir, int damage, int speed, int flashtype) ! { Fire.fire_rocket(self, start, dir, damage, speed, damage + 20, damage); --- 98,102 ---- } /** The Moster fires the rocket. */ ! public static void monster_fire_rocket(edict_t self, float[] start, float[] dir, int damage, int speed, int flashtype) { Fire.fire_rocket(self, start, dir, damage, speed, damage + 20, damage); *************** *** 113,118 **** } /** The Moster fires the railgun. */ ! public static void monster_fire_railgun(edict_t self, float[] start, float[] aimdir, int damage, int kick, int flashtype) ! { Fire.fire_rail(self, start, aimdir, damage, kick); --- 107,111 ---- } /** The Moster fires the railgun. */ ! public static void monster_fire_railgun(edict_t self, float[] start, float[] aimdir, int damage, int kick, int flashtype) { Fire.fire_rail(self, start, aimdir, damage, kick); *************** *** 131,136 **** int kick, float damage_radius, ! int flashtype) ! { Fire.fire_bfg(self, start, aimdir, damage, speed, damage_radius); --- 124,128 ---- int kick, float damage_radius, ! int flashtype) { Fire.fire_bfg(self, start, aimdir, damage, speed, damage_radius); *************** *** 148,164 **** ================ */ ! public static void monster_death_use(edict_t self) ! { self.flags &= ~(Defines.FL_FLY | Defines.FL_SWIM); self.monsterinfo.aiflags &= Defines.AI_GOOD_GUY; ! if (self.item != null) ! { GameUtil.Drop_Item(self, self.item); ! self.item = null; } if (self.deathtarget != null) ! self.target = self.deathtarget; if (self.target == null) --- 140,154 ---- ================ */ ! public static void monster_death_use(edict_t self) { self.flags &= ~(Defines.FL_FLY | Defines.FL_SWIM); self.monsterinfo.aiflags &= Defines.AI_GOOD_GUY; ! if (self.item != null) { GameUtil.Drop_Item(self, self.item); ! self.item= null; } if (self.deathtarget != null) ! self.target= self.deathtarget; if (self.target == null) *************** *** 168,181 **** } // ============================================================================ ! public static boolean monster_start(edict_t self) ! { ! if (GameBase.deathmatch.value != 0) ! { GameUtil.G_FreeEdict(self); return false; } ! if ((self.spawnflags & 4) != 0 && 0 == (self.monsterinfo.aiflags & Defines.AI_GOOD_GUY)) ! { self.spawnflags &= ~4; self.spawnflags |= 1; --- 158,168 ---- } // ============================================================================ ! public static boolean monster_start(edict_t self) { ! if (GameBase.deathmatch.value != 0) { GameUtil.G_FreeEdict(self); return false; } ! if ((self.spawnflags & 4) != 0 && 0 == (self.monsterinfo.aiflags & Defines.AI_GOOD_GUY)) { self.spawnflags &= ~4; self.spawnflags |= 1; *************** *** 186,209 **** GameBase.level.total_monsters++; ! self.nextthink = GameBase.level.time + Defines.FRAMETIME; self.svflags |= Defines.SVF_MONSTER; self.s.renderfx |= Defines.RF_FRAMELERP; ! self.takedamage = Defines.DAMAGE_AIM; ! self.air_finished = GameBase.level.time + 12; ! self.use = GameUtilAdapters.monster_use; ! self.max_health = self.health; ! self.clipmask = Defines.MASK_MONSTERSOLID; ! self.s.skinnum = 0; ! self.deadflag = Defines.DEAD_NO; self.svflags &= ~Defines.SVF_DEADMONSTER; if (null == self.monsterinfo.checkattack) ! self.monsterinfo.checkattack = GameUtilAdapters.M_CheckAttack; Math3D.VectorCopy(self.s.origin, self.s.old_origin); ! if (GameBase.st.item != null && GameBase.st.item.length()>0 ) ! { ! self.item = GameUtil.FindItemByClassname(GameBase.st.item); if (self.item == null) GameBase.gi.dprintf( --- 173,195 ---- GameBase.level.total_monsters++; ! self.nextthink= GameBase.level.time + Defines.FRAMETIME; self.svflags |= Defines.SVF_MONSTER; self.s.renderfx |= Defines.RF_FRAMELERP; ! self.takedamage= Defines.DAMAGE_AIM; ! self.air_finished= GameBase.level.time + 12; ! self.use= GameUtilAdapters.monster_use; ! self.max_health= self.health; ! self.clipmask= Defines.MASK_MONSTERSOLID; ! self.s.skinnum= 0; ! self.deadflag= Defines.DEAD_NO; self.svflags &= ~Defines.SVF_DEADMONSTER; if (null == self.monsterinfo.checkattack) ! self.monsterinfo.checkattack= GameUtilAdapters.M_CheckAttack; Math3D.VectorCopy(self.s.origin, self.s.old_origin); ! if (GameBase.st.item != null && GameBase.st.item.length() > 0) { ! self.item= GameUtil.FindItemByClassname(GameBase.st.item); if (self.item == null) GameBase.gi.dprintf( *************** *** 219,223 **** // randomize what frame they start on if (self.monsterinfo.currentmove != null) ! self.s.frame = self.monsterinfo.currentmove.firstframe + (Lib.rand() % (self.monsterinfo.currentmove.lastframe - self.monsterinfo.currentmove.firstframe + 1)); --- 205,209 ---- // randomize what frame they start on if (self.monsterinfo.currentmove != null) ! self.s.frame= self.monsterinfo.currentmove.firstframe + (Lib.rand() % (self.monsterinfo.currentmove.lastframe - self.monsterinfo.currentmove.firstframe + 1)); *************** *** 226,233 **** } ! public static void monster_start_go(edict_t self) ! { ! float[] v = { 0, 0, 0 }; if (self.health <= 0) --- 212,218 ---- } ! public static void monster_start_go(edict_t self) { ! float[] v= { 0, 0, 0 }; if (self.health <= 0) *************** *** 235,245 **** // check for target to combat_point and change to combattarget ! if (self.target != null) ! { boolean notcombat; boolean fixup; ! edict_t target = null; ! notcombat = false; ! fixup = false; /* if (true) { --- 220,229 ---- // check for target to combat_point and change to combattarget ! if (self.target != null) { boolean notcombat; boolean fixup; ! edict_t target= null; ! notcombat= false; ! fixup= false; /* if (true) { *************** *** 259,275 **** */ ! EdictIterator edit = null; ! while ((edit = GameBase.G_Find(edit, GameBase.findByTarget, self.target)) != null) ! { ! target = edit.o; ! if (Lib.strcmp(target.classname, "point_combat") == 0) ! { ! self.combattarget = self.target; ! fixup = true; } ! else ! { ! notcombat = true; } } --- 243,256 ---- */ ! EdictIterator edit= null; ! while ((edit= GameBase.G_Find(edit, GameBase.findByTarget, self.target)) != null) { ! target= edit.o; ! if (Lib.strcmp(target.classname, "point_combat") == 0) { ! self.combattarget= self.target; ! fixup= true; } ! else { ! notcombat= true; } } *************** *** 277,295 **** GameBase.gi.dprintf(self.classname + " at " + Lib.vtos(self.s.origin) + " has target with mixed types\n"); if (fixup) ! self.target = null; } // validate combattarget ! if (self.combattarget != null) ! { ! edict_t target = null; ! EdictIterator edit = null; ! while ((edit = GameBase.G_Find(edit, GameBase.findByTarget, self.combattarget)) != null) ! { ! target = edit.o; ! if (Lib.strcmp(target.classname, "point_combat") != 0) ! { GameBase.gi.dprintf( self.classname --- 258,273 ---- GameBase.gi.dprintf(self.classname + " at " + Lib.vtos(self.s.origin) + " has target with mixed types\n"); if (fixup) ! self.target= null; } // validate combattarget ! if (self.combattarget != null) { ! edict_t target= null; ! EdictIterator edit= null; ! while ((edit= GameBase.G_Find(edit, GameBase.findByTarget, self.combattarget)) != null) { ! target= edit.o; ! if (Lib.strcmp(target.classname, "point_combat") != 0) { GameBase.gi.dprintf( self.classname *************** *** 306,341 **** } ! if (self.target != null) ! { ! self.goalentity = self.movetarget = GameBase.G_PickTarget(self.target); ! if (null == self.movetarget) ! { GameBase.gi.dprintf(self.classname + " can't find target " + self.target + " at " + Lib.vtos(self.s.origin) + "\n"); ! self.target = null; ! self.monsterinfo.pausetime = 100000000; self.monsterinfo.stand.think(self); } ! else if (Lib.strcmp(self.movetarget.classname, "path_corner") == 0) ! { Math3D.VectorSubtract(self.goalentity.s.origin, self.s.origin, v); ! self.ideal_yaw = self.s.angles[Defines.YAW] = Math3D.vectoyaw(v); self.monsterinfo.walk.think(self); ! self.target = null; } ! else ! { ! self.goalentity = self.movetarget = null; ! self.monsterinfo.pausetime = 100000000; self.monsterinfo.stand.think(self); } } ! else ! { ! self.monsterinfo.pausetime = 100000000; self.monsterinfo.stand.think(self); } ! self.think = MonsterAdapters.monster_think; ! self.nextthink = GameBase.level.time + Defines.FRAMETIME; } } --- 284,314 ---- } ! if (self.target != null) { ! self.goalentity= self.movetarget= GameBase.G_PickTarget(self.target); ! if (null == self.movetarget) { GameBase.gi.dprintf(self.classname + " can't find target " + self.target + " at " + Lib.vtos(self.s.origin) + "\n"); ! self.target= null; ! self.monsterinfo.pausetime= 100000000; self.monsterinfo.stand.think(self); } ! else if (Lib.strcmp(self.movetarget.classname, "path_corner") == 0) { Math3D.VectorSubtract(self.goalentity.s.origin, self.s.origin, v); ! self.ideal_yaw= self.s.angles[Defines.YAW]= Math3D.vectoyaw(v); self.monsterinfo.walk.think(self); ! self.target= null; } ! else { ! self.goalentity= self.movetarget= null; ! self.monsterinfo.pausetime= 100000000; self.monsterinfo.stand.think(self); } } ! else { ! self.monsterinfo.pausetime= 100000000; self.monsterinfo.stand.think(self); } ! self.think= MonsterAdapters.monster_think; ! self.nextthink= GameBase.level.time + Defines.FRAMETIME; } } Index: SuperAdapter.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/game/SuperAdapter.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SuperAdapter.java 4 Sep 2004 09:01:01 -0000 1.3 --- SuperAdapter.java 12 Sep 2004 18:25:49 -0000 1.4 *************** *** 29,38 **** import java.util.Vector; ! public class SuperAdapter ! { /** Adapter registration. */ ! private static void register(SuperAdapter sa, String id) ! { adapters.put(id, sa); } --- 29,36 ---- import java.util.Vector; ! public class SuperAdapter { /** Adapter registration. */ ! private static void register(SuperAdapter sa, String id) { adapters.put(id, sa); } *************** *** 42,83 **** /** Returns the adapter from the repository given by its ID. */ ! public static SuperAdapter getFromID(String key) ! { ! SuperAdapter sa = (SuperAdapter) adapters.get(key); ! // try to create the adapter ! if (sa == null) ! { Com.DPrintf("SuperAdapter.getFromID():adapter not found->" + key + "\n"); ! int pos = key.indexOf('$'); ! String classname = key; if (pos != -1) ! classname = key.substring(0, pos); ! // load class and instantiate ! try ! { //Com.DPrintf("SuperAdapter.getFromID():loading class->" + classname + "\n"); Class.forName(classname).newInstance(); } ! catch(Exception e) ! { Com.DPrintf("SuperAdapter.getFromID():class not found->" + classname + "\n"); } ! // try it again... ! sa = (SuperAdapter) adapters.get(key); ! if (sa == null) Com.DPrintf("jake2: could not load adapter:" + key + "\n"); } ! return sa; } /** Constructor, does the adapter registration. */ ! public SuperAdapter() ! { ! StackTraceElement tr[] = new Throwable().getStackTrace(); adapterid= tr[2].getClassName(); if (adapterid == "") --- 40,76 ---- /** Returns the adapter from the repository given by its ID. */ ! public static SuperAdapter getFromID(String key) { ! SuperAdapter sa= (SuperAdapter) adapters.get(key); ! // try to create the adapter ! if (sa == null) { Com.DPrintf("SuperAdapter.getFromID():adapter not found->" + key + "\n"); ! int pos= key.indexOf('$'); ! String classname= key; if (pos != -1) ! classname= key.substring(0, pos); ! // load class and instantiate ! try { //Com.DPrintf("SuperAdapter.getFromID():loading class->" + classname + "\n"); Class.forName(classname).newInstance(); } ! catch (Exception e) { Com.DPrintf("SuperAdapter.getFromID():class not found->" + classname + "\n"); } ! // try it again... ! sa= (SuperAdapter) adapters.get(key); ! if (sa == null) Com.DPrintf("jake2: could not load adapter:" + key + "\n"); } ! return sa; } /** Constructor, does the adapter registration. */ ! public SuperAdapter() { ! StackTraceElement tr[]= new Throwable().getStackTrace(); adapterid= tr[2].getClassName(); if (adapterid == "") *************** *** 88,93 **** /** Returns the Adapter-ID. */ ! public String getID() ! { return adapterid; } --- 81,85 ---- /** Returns the Adapter-ID. */ ! public String getID() { return adapterid; } Index: GamePWeapon.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/game/GamePWeapon.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** GamePWeapon.java 10 Sep 2004 19:02:55 -0000 1.3 --- GamePWeapon.java 12 Sep 2004 18:25:49 -0000 1.4 *************** *** 1234,1238 **** if (((ent.client.latched_buttons | ent.client.buttons) & Defines.BUTTON_ATTACK) != 0) { ent.client.latched_buttons &= ~Defines.BUTTON_ATTACK; ! if ((0 != ent.client.ammo_index) || (ent.client.pers.inventory[ent.client.ammo_index] >= ent.client.pers.weapon.quantity)) { --- 1234,1238 ---- if (((ent.client.latched_buttons | ent.client.buttons) & Defines.BUTTON_ATTACK) != 0) { ent.client.latched_buttons &= ~Defines.BUTTON_ATTACK; ! if ((0 == ent.client.ammo_index) || (ent.client.pers.inventory[ent.client.ammo_index] >= ent.client.pers.weapon.quantity)) { Index: usercmd_t.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/game/usercmd_t.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** usercmd_t.java 8 Jul 2004 15:58:44 -0000 1.2 --- usercmd_t.java 12 Sep 2004 18:25:49 -0000 1.3 *************** *** 31,35 **** public byte msec; public byte buttons; ! public short angles[] = new short[3]; public short forwardmove, sidemove, upmove; public byte impulse; // remove? --- 31,35 ---- public byte msec; public byte buttons; ! public short angles[]= new short[3]; public short forwardmove, sidemove, upmove; public byte impulse; // remove? *************** *** 37,86 **** public void reset() { ! forwardmove = sidemove = upmove = msec = buttons = impulse = lightlevel = 0; ! Arrays.fill(angles, (short)0); } ! ! public usercmd_t() {}; ! public usercmd_t(usercmd_t from) { ! msec = from.msec; ! buttons = from.buttons; ! angles[0] = from.angles[0]; ! angles[1] = from.angles[1]; ! angles[2] = from.angles[2]; ! forwardmove = from.forwardmove; ! sidemove = from.sidemove; ! upmove = from.upmove; ! impulse = from.impulse; ! lightlevel = from.lightlevel; } ! ! public usercmd_t set(usercmd_t from) ! { ! msec = from.msec; ! buttons = from.buttons; ! angles[0] = from.angles[0]; ! angles[1] = from.angles[1]; ! angles[2] = from.angles[2]; ! forwardmove = from.forwardmove; ! sidemove = from.sidemove; ! upmove = from.upmove; ! impulse = from.impulse; ! lightlevel = from.lightlevel; ! return this; } - - // public usercmd_t getClone() - // { - // try { - // usercmd_t u1 = (usercmd_t) this.clone(); - // u1.angles = Lib.clone(angles); - // return u1; - // } - // catch (CloneNotSupportedException e) { - // return null; - // } - // } - } \ No newline at end of file --- 37,73 ---- public void reset() { ! forwardmove= sidemove= upmove= msec= buttons= impulse= lightlevel= 0; ! Arrays.fill(angles, (short) 0); } ! ! public usercmd_t() { ! }; ! public usercmd_t(usercmd_t from) { ! msec= from.msec; ! buttons= from.buttons; ! angles[0]= from.angles[0]; ! angles[1]= from.angles[1]; ! angles[2]= from.angles[2]; ! forwardmove= from.forwardmove; ! sidemove= from.sidemove; ! upmove= from.upmove; ! impulse= from.impulse; ! lightlevel= from.lightlevel; } ! ! public usercmd_t set(usercmd_t from) { ! msec= from.msec; ! buttons= from.buttons; ! angles[0]= from.angles[0]; ! angles[1]= from.angles[1]; ! angles[2]= from.angles[2]; ! forwardmove= from.forwardmove; ! sidemove= from.sidemove; ! upmove= from.upmove; ! impulse= from.impulse; ! lightlevel= from.lightlevel; ! return this; } } \ No newline at end of file Index: GameUtil.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/game/GameUtil.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** GameUtil.java 29 Aug 2004 21:39:24 -0000 1.5 --- GameUtil.java 12 Sep 2004 18:25:49 -0000 1.6 *************** *** 29,40 **** import jake2.util.Math3D; ! public class GameUtil extends GameBase ! { ! public static void checkClassname(edict_t ent) ! { ! if (ent.classname == null) ! { [...1978 lines suppressed...] Math3D.VectorSubtract(inflictor.s.origin, v, v); ! points = damage - 0.5f * Math3D.VectorLength(v); if (ent == attacker) ! points = points * 0.5f; ! if (points > 0) ! { ! if (CanDamage(ent, inflictor)) ! { Math3D.VectorSubtract(ent.s.origin, inflictor.s.origin, dir); T_Damage( --- 1237,1245 ---- Math3D.VectorMA(ent.s.origin, 0.5f, v, v); Math3D.VectorSubtract(inflictor.s.origin, v, v); ! points= damage - 0.5f * Math3D.VectorLength(v); if (ent == attacker) ! points= points * 0.5f; ! if (points > 0) { ! if (CanDamage(ent, inflictor)) { Math3D.VectorSubtract(ent.s.origin, inflictor.s.origin, dir); T_Damage( |