Annotation of quake2/game/x, revision 1.1.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.