Annotation of quake2/game/x, revision 1.1

1.1     ! root        1: --- p_weapon.c Wed Apr 01 20:36:39 1998
        !             2: +++ e:\Incoming\p_weapon.c     Tue Apr 07 11:16:41 1998
        !             3: @@ -11,7 +11,7 @@
        !             4:  void weapon_grenade_fire (edict_t *ent, qboolean held);
        !             5:  
        !             6:  
        !             7: -static void P_ProjectSource (gclient_t *client, vec3_t point, vec3_t distance, vec3_t forward, vec3_t right, vec3_t result)
        !             8: +void P_ProjectSource (gclient_t *client, vec3_t point, vec3_t distance, vec3_t forward, vec3_t right, vec3_t result)
        !             9:  {
        !            10:        vec3_t  _distance;
        !            11:  
        !            12: @@ -152,10 +152,28 @@
        !            13:  current
        !            14:  ===============
        !            15:  */
        !            16: -void ChangeWeapon (edict_t *ent)
        !            17: +
        !            18: +// ### Hentai ### BEGIN
        !            19: +void ShowGun(edict_t *ent)
        !            20:  {
        !            21: -      int i;
        !            22: +      char heldmodel[128];
        !            23: +      if(!ent->client->pers.weapon)
        !            24: +      {
        !            25: +              ent->s.modelindex2 = 0;
        !            26: +              return;
        !            27: +      }
        !            28: +
        !            29: +      strcpy(heldmodel, "*"); // Zoid: is this a * or a #?
        !            30: +      strcat(heldmodel, ent->client->pers.weapon->icon);      
        !            31: +      strcat(heldmodel, ".md2");
        !            32: +      //gi.dprintf ("%s\n", heldmodel);
        !            33: +      ent->s.modelindex2 = gi.modelindex(heldmodel);  // Hentai's custom gun models
        !            34: +
        !            35: +}
        !            36: +// ### Hentai ### END
        !            37:  
        !            38: +void ChangeWeapon (edict_t *ent)
        !            39: +{
        !            40:        if (ent->client->grenade_time)
        !            41:        {
        !            42:                ent->client->grenade_time = level.time;
        !            43: @@ -169,22 +187,13 @@
        !            44:        ent->client->newweapon = NULL;
        !            45:        ent->client->machinegun_shots = 0;
        !            46:  
        !            47: -      // set visible model
        !            48: -      if (ent->s.modelindex == 255) {
        !            49: -              if (ent->client->pers.weapon)
        !            50: -                      i = ((ent->client->pers.weapon->weapmodel & 0xff) << 8);
        !            51: -              else
        !            52: -                      i = 0;
        !            53: -              ent->s.skinnum = (ent - g_edicts - 1) | i;
        !            54: -      }
        !            55: -
        !            56:        if (ent->client->pers.weapon && ent->client->pers.weapon->ammo)
        !            57:                ent->client->ammo_index = ITEM_INDEX(FindItem(ent->client->pers.weapon->ammo));
        !            58:        else
        !            59:                ent->client->ammo_index = 0;
        !            60:  
        !            61: -      if (!ent->client->pers.weapon)
        !            62: -      {       // dead
        !            63: +      if (!ent->client->pers.weapon || ent->s.modelindex != 255) // ### Hentai ### 
        !            64: +      {       // dead, or not on client, so VWep animations could do wacky things
        !            65:                ent->client->ps.gunindex = 0;
        !            66:                return;
        !            67:        }
        !            68: @@ -193,6 +202,7 @@
        !            69:        ent->client->ps.gunframe = 0;
        !            70:        ent->client->ps.gunindex = gi.modelindex(ent->client->pers.weapon->view_model);
        !            71:  
        !            72: +      // ### Hentai ### BEGIN
        !            73:        ent->client->anim_priority = ANIM_PAIN;
        !            74:        if(ent->client->ps.pmove.pm_flags & PMF_DUCKED)
        !            75:        {
        !            76: @@ -205,6 +215,10 @@
        !            77:                        ent->client->anim_end = FRAME_pain304;
        !            78:                        
        !            79:        }
        !            80: +      
        !            81: +      ShowGun(ent);   
        !            82: +
        !            83: +      // ### Hentai ### END
        !            84:  }
        !            85:  
        !            86:  /*
        !            87: @@ -358,14 +372,12 @@
        !            88:  #define FRAME_IDLE_FIRST              (FRAME_FIRE_LAST + 1)
        !            89:  #define FRAME_DEACTIVATE_FIRST        (FRAME_IDLE_LAST + 1)
        !            90:  
        !            91: -void Weapon_Generic (edict_t *ent, int FRAME_ACTIVATE_LAST, int FRAME_FIRE_LAST, int FRAME_IDLE_LAST, int FRAME_DEACTIVATE_LAST, int *pause_frames, int *fire_frames, void (*fire)(edict_t *ent))
        !            92: +static void Weapon_Generic2 (edict_t *ent, int FRAME_ACTIVATE_LAST, int FRAME_FIRE_LAST, int FRAME_IDLE_LAST, int FRAME_DEACTIVATE_LAST, int *pause_frames, int *fire_frames, void (*fire)(edict_t *ent))
        !            93:  {
        !            94:        int             n;
        !            95:  
        !            96: -      if(ent->deadflag || ent->s.modelindex != 255) // VWep animations screw up corpses
        !            97: -      {
        !            98: -              return;
        !            99: -      }
        !           100: +      if(ent->s.modelindex != 255) // ### Hentai ### 
        !           101: +              return; // not on client, so VWep animations could do wacky things
        !           102:  
        !           103:        if (ent->client->weaponstate == WEAPON_DROPPING)
        !           104:        {
        !           105: @@ -374,7 +386,8 @@
        !           106:                        ChangeWeapon (ent);
        !           107:                        return;
        !           108:                }
        !           109: -              else if ((FRAME_DEACTIVATE_LAST - ent->client->ps.gunframe) == 4)
        !           110: +              // ### Hentai ### BEGIN
        !           111: +              else if((FRAME_DEACTIVATE_LAST - ent->client->ps.gunframe) == 4)
        !           112:                {
        !           113:                        ent->client->anim_priority = ANIM_REVERSE;
        !           114:                        if(ent->client->ps.pmove.pm_flags & PMF_DUCKED)
        !           115: @@ -389,6 +402,7 @@
        !           116:                                
        !           117:                        }
        !           118:                }
        !           119: +              // ### Hentai ### END
        !           120:  
        !           121:                ent->client->ps.gunframe++;
        !           122:                return;
        !           123: @@ -411,8 +425,8 @@
        !           124:        {
        !           125:                ent->client->weaponstate = WEAPON_DROPPING;
        !           126:                ent->client->ps.gunframe = FRAME_DEACTIVATE_FIRST;
        !           127: -
        !           128: -              if ((FRAME_DEACTIVATE_LAST - FRAME_DEACTIVATE_FIRST) < 4)
        !           129: +              // ### Hentai ### BEGIN
        !           130: +              if((FRAME_DEACTIVATE_LAST - FRAME_DEACTIVATE_FIRST) < 4)
        !           131:                {
        !           132:                        ent->client->anim_priority = ANIM_REVERSE;
        !           133:                        if(ent->client->ps.pmove.pm_flags & PMF_DUCKED)
        !           134: @@ -427,6 +441,7 @@
        !           135:                                
        !           136:                        }
        !           137:                }
        !           138: +              // ### Hentai ### END
        !           139:                return;
        !           140:        }
        !           141:  
        !           142: @@ -495,8 +510,14 @@
        !           143:                {
        !           144:                        if (ent->client->ps.gunframe == fire_frames[n])
        !           145:                        {
        !           146: +//ZOID
        !           147: +                              if (!CTFApplyStrengthSound(ent))
        !           148: +//ZOID
        !           149:                                if (ent->client->quad_framenum > level.framenum)
        !           150:                                        gi.sound(ent, CHAN_ITEM, gi.soundindex("items/damage3.wav"), 1, ATTN_NORM, 0);
        !           151: +//ZOID
        !           152: +                              CTFApplyHasteSound(ent);
        !           153: +//ZOID
        !           154:  
        !           155:                                fire (ent);
        !           156:                                break;
        !           157: @@ -511,6 +532,33 @@
        !           158:        }
        !           159:  }
        !           160:  
        !           161: +//ZOID
        !           162: +void Weapon_Generic (edict_t *ent, int FRAME_ACTIVATE_LAST, int FRAME_FIRE_LAST, int FRAME_IDLE_LAST, int FRAME_DEACTIVATE_LAST, int *pause_frames, int *fire_frames, void (*fire)(edict_t *ent))
        !           163: +{
        !           164: +      int oldstate = ent->client->weaponstate;
        !           165: +
        !           166: +      if (ent->s.modelindex != 255) // ### Hentai ### 
        !           167: +              return; // not on client, so VWep animations could do wacky things
        !           168: +
        !           169: +      Weapon_Generic2 (ent, FRAME_ACTIVATE_LAST, FRAME_FIRE_LAST, 
        !           170: +              FRAME_IDLE_LAST, FRAME_DEACTIVATE_LAST, pause_frames, 
        !           171: +              fire_frames, fire);
        !           172: +
        !           173: +      // run the weapon frame again if hasted
        !           174: +      if (stricmp(ent->client->pers.weapon->pickup_name, "Grapple") == 0 &&
        !           175: +              ent->client->weaponstate == WEAPON_FIRING)
        !           176: +              return;
        !           177: +
        !           178: +      if ((CTFApplyHaste(ent) ||
        !           179: +              (Q_stricmp(ent->client->pers.weapon->pickup_name, "Grapple") == 0 &&
        !           180: +              ent->client->weaponstate != WEAPON_FIRING))
        !           181: +              && oldstate == ent->client->weaponstate) {
        !           182: +              Weapon_Generic2 (ent, FRAME_ACTIVATE_LAST, FRAME_FIRE_LAST, 
        !           183: +                      FRAME_IDLE_LAST, FRAME_DEACTIVATE_LAST, pause_frames, 
        !           184: +                      fire_frames, fire);
        !           185: +      }
        !           186: +}
        !           187: +//ZOID
        !           188:  
        !           189:  /*
        !           190:  ======================================================================
        !           191: @@ -546,28 +594,28 @@
        !           192:        speed = GRENADE_MINSPEED + (GRENADE_TIMER - timer) * ((GRENADE_MAXSPEED - GRENADE_MINSPEED) / GRENADE_TIMER);
        !           193:        fire_grenade2 (ent, start, forward, damage, speed, timer, radius, held);
        !           194:  
        !           195: -      if (! ( (int)dmflags->value & DF_INFINITE_AMMO ) )
        !           196: -              ent->client->pers.inventory[ent->client->ammo_index]--;
        !           197: -
        !           198: -      ent->client->grenade_time = level.time + 1.0;
        !           199: -
        !           200: -      if(ent->deadflag || ent->s.modelindex != 255) // VWep animations screw up corpses
        !           201: -      {
        !           202: +      // ### Hentai ### BEGIN
        !           203: +      if(ent->deadflag || ent->s.modelindex != 255)
        !           204:                return;
        !           205: -      }
        !           206:  
        !           207: -      if (ent->client->ps.pmove.pm_flags & PMF_DUCKED)
        !           208: +      if (ent->client->ps.pmove.pm_flags & PMF_DUCKED )
        !           209:        {
        !           210:                ent->client->anim_priority = ANIM_ATTACK;
        !           211:                ent->s.frame = FRAME_crattak1-1;
        !           212:                ent->client->anim_end = FRAME_crattak3;
        !           213:        }
        !           214: -      else
        !           215: +      else if(ent->s.modelindex != 255)
        !           216:        {
        !           217:                ent->client->anim_priority = ANIM_REVERSE;
        !           218:                ent->s.frame = FRAME_wave08;
        !           219:                ent->client->anim_end = FRAME_wave01;
        !           220:        }
        !           221: +      // ### Hentai ### END
        !           222: +
        !           223: +      if (! ( (int)dmflags->value & DF_INFINITE_AMMO ) )
        !           224: +              ent->client->pers.inventory[ent->client->ammo_index]--;
        !           225: +
        !           226: +      ent->client->grenade_time = level.time + 1.0;
        !           227:  }
        !           228:  
        !           229:  void Weapon_Grenade (edict_t *ent)
        !           230: @@ -629,7 +677,7 @@
        !           231:                        if (!ent->client->grenade_time)
        !           232:                        {
        !           233:                                ent->client->grenade_time = level.time + GRENADE_TIMER + 0.2;
        !           234: -                              ent->client->weapon_sound = gi.soundindex("weapons/hgrenc1b.wav");
        !           235: +                              //ent->client->weapon_sound = gi.soundindex("weapons/hgrenc1b.wav");
        !           236:                        }
        !           237:  
        !           238:                        // they waited too long, detonate it in their hand
        !           239: @@ -883,8 +931,8 @@
        !           240:                        else
        !           241:                                damage = 20;
        !           242:                        Blaster_Fire (ent, offset, damage, true, effect);
        !           243: -                      if (! ( (int)dmflags->value & DF_INFINITE_AMMO ) )
        !           244: -                              ent->client->pers.inventory[ent->client->ammo_index]--;
        !           245: +                      
        !           246: +                      // ### Hentai ### BEGIN
        !           247:  
        !           248:                        ent->client->anim_priority = ANIM_ATTACK;
        !           249:                        if (ent->client->ps.pmove.pm_flags & PMF_DUCKED)
        !           250: @@ -897,6 +945,11 @@
        !           251:                                ent->s.frame = FRAME_attack1 - 1;
        !           252:                                ent->client->anim_end = FRAME_attack8;
        !           253:                        }
        !           254: +      
        !           255: +                      // ### Hentai ### END
        !           256: +
        !           257: +                      if (! ( (int)dmflags->value & DF_INFINITE_AMMO ) )
        !           258: +                              ent->client->pers.inventory[ent->client->ammo_index]--;
        !           259:                }
        !           260:  
        !           261:                ent->client->ps.gunframe++;
        !           262: @@ -997,9 +1050,7 @@
        !           263:        gi.multicast (ent->s.origin, MULTICAST_PVS);
        !           264:  
        !           265:        PlayerNoise(ent, start, PNOISE_WEAPON);
        !           266: -
        !           267: -      if (! ( (int)dmflags->value & DF_INFINITE_AMMO ) )
        !           268: -              ent->client->pers.inventory[ent->client->ammo_index]--;
        !           269: +      // ### Hentai ### BEGIN
        !           270:  
        !           271:        ent->client->anim_priority = ANIM_ATTACK;
        !           272:        if (ent->client->ps.pmove.pm_flags & PMF_DUCKED)
        !           273: @@ -1012,6 +1063,11 @@
        !           274:                ent->s.frame = FRAME_attack1 - (int) (random()+0.25);
        !           275:                ent->client->anim_end = FRAME_attack8;
        !           276:        }
        !           277: +
        !           278: +      // ### Hentai ### END
        !           279: +
        !           280: +      if (! ( (int)dmflags->value & DF_INFINITE_AMMO ) )
        !           281: +              ent->client->pers.inventory[ent->client->ammo_index]--;
        !           282:  }
        !           283:  
        !           284:  void Weapon_Machinegun (edict_t *ent)
        !           285: @@ -1067,6 +1123,8 @@
        !           286:                ent->client->weapon_sound = gi.soundindex("weapons/chngnl1a.wav");
        !           287:        }
        !           288:  
        !           289: +              // ### Hentai ### BEGIN
        !           290: +
        !           291:        ent->client->anim_priority = ANIM_ATTACK;
        !           292:        if (ent->client->ps.pmove.pm_flags & PMF_DUCKED)
        !           293:        {
        !           294: @@ -1079,6 +1137,8 @@
        !           295:                ent->client->anim_end = FRAME_attack8;
        !           296:        }
        !           297:  
        !           298: +      // ### Hentai ### END
        !           299: +
        !           300:        if (ent->client->ps.gunframe <= 9)
        !           301:                shots = 1;
        !           302:        else if (ent->client->ps.gunframe <= 14)
        !           303: @@ -1137,6 +1197,7 @@
        !           304:  
        !           305:        PlayerNoise(ent, start, PNOISE_WEAPON);
        !           306:  
        !           307: +
        !           308:        if (! ( (int)dmflags->value & DF_INFINITE_AMMO ) )
        !           309:                ent->client->pers.inventory[ent->client->ammo_index] -= shots;
        !           310:  }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.