L L4D2node

CAwardPool::CreateTemplatesForPlayer

0x00848920 · 4253 bytes · __thiscall

_ZN10CAwardPool24CreateTemplatesForPlayerEiP14CUtlLinkedListIP14CAwardTemplatetLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS2_tEtEE

Decompiled

undefined (3 params)

/* CAwardPool::CreateTemplatesForPlayer(int, CUtlLinkedList<CAwardTemplate*, unsigned short, false,
   unsigned short, CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*, unsigned short>, unsigned short>
   >*) */

undefined4 __thiscall
CAwardPool::CreateTemplatesForPlayer(CAwardPool *this,int param_1,CUtlLinkedList *param_2)

{
  CBaseEntity *this_00;
  int iVar1;
  CAbandonmentAwardTemplate *this_01;
  CAbusiveBehaviorAwardTemplate *this_02;
  CAmbushAwardTemplate *this_03;
  CBoomerBlunderAwardTemplate *this_04;
  CBoomerComboAwardTemplate *this_05;
  CCheckpointCompleteAwardTemplate *this_06;
  CDarkMissionAwardTemplate *this_07;
  CEarlyMourningAwardTemplate *this_08;
  CForgetfulAwardTemplate *this_09;
  CFriendlyFireAwardTemplate *this_10;
  CGreedAwardTemplate *this_11;
  CGrenadeBlunderAwardTemplate *this_12;
  CGrenadeExpertAwardTemplate *this_13;
  CGrenadierAwardTemplate *this_14;
  CHeadhunterAwardTemplate *this_15;
  CHelpingHandAwardTemplate *this_16;
  CHeroAwardTemplate *this_17;
  CHinderingEscapeAwardTemplate *this_18;
  CHulkShutOutAwardTemplate *this_19;
  CHulkSlayerAwardTemplate *this_20;
  CHurdleAwardTemplate *this_21;
  CItSurvivorAwardTemplate *this_22;
  CKnockdownAwardTemplate *this_23;
  CLeft4DeadAwardTemplate *this_24;
  CLeftBehindAwardTemplate *this_25;
  CMurderAwardTemplate *this_26;
  CMVPAwardTemplate *this_27;
  CNarrowEscapeAwardTemplate *this_28;
  CParryAwardTemplate *this_29;
  CPerfectTeamAwardTemplate *this_30;
  CProtectorAwardTemplate *this_31;
  CRescuerAwardTemplate *this_32;
  CReviveFriendAwardTemplate *this_33;
  CSaviorAwardTemplate *this_34;
  CScenarioWinAwardTemplate *this_35;
  CSecurityFailureAwardTemplate *this_36;
  CSharingAwardTemplate *this_37;
  CSharpshooterAwardTemplate *this_38;
  CSkeetShootAwardTemplate *this_39;
  CSniperAwardTemplate *this_40;
  CToughGuyAwardTemplate *this_41;
  CVomitStopAwardTemplate *this_42;
  CWeaponExpertAwardTemplate *this_43;
  CWhiplashAwardTemplate *this_44;
  CWitchHarassmentAwardTemplate *this_45;
  CWitchSlayerAwardTemplate *this_46;
  CGoodTeammateAwardTemplate *this_47;
  CGotchaAwardTemplate *this_48;
  CPounceAwardTemplate *this_49;
  CRedecoratorAwardTemplate *this_50;
  CTongueChokeAwardTemplate *this_51;
  CFallCauserAwardTemplate *this_52;
  CSurvivorKillAwardTemplate *this_53;
  CHulkPhysicsAwardTemplate *this_54;
  CHulkRockAwardTemplate *this_55;
  CHulkPunchAwardTemplate *this_56;
  CClawHitAwardTemplate *this_57;
  CVomitHitAwardTemplate *this_58;
  CExplosionAwardTemplate *this_59;
  CHitEverybodyAwardTemplate *this_60;
  CHitAndRunAwardTemplate *this_61;
  CMostHitsAwardTemplate *this_62;
  CNoSurvivorsAwardTemplate *this_63;
  CDoomsdayAwardTemplate *this_64;
  CAbandonmentAwardTemplate *local_20 [4];
  
  this_00 = (CBaseEntity *)UTIL_PlayerByUserId(param_1);
  if (this_00 == (CBaseEntity *)0x0) {
    return 0;
  }
  iVar1 = CBaseEntity::GetTeamNumber(this_00);
  if (iVar1 - 2U < 2) {
    DeleteTemplatesForPlayer(this,param_1,param_2);
    iVar1 = CBaseEntity::GetTeamNumber(this_00);
    if (iVar1 == 2) {
      this_01 = ::operator_new(0x2c);
                    /* try { // try from 008489b5 to 008489b9 has its CatchHandler @ 00849ce5 */
      CAbandonmentAwardTemplate::CAbandonmentAwardTemplate(this_01,param_1);
      local_20[0] = this_01;
      if (this_01 != (CAbandonmentAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_01 + 0x10))(this_01);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_02 = ::operator_new(0x110);
                    /* try { // try from 008489f5 to 008489f9 has its CatchHandler @ 00849cd5 */
      CAbusiveBehaviorAwardTemplate::CAbusiveBehaviorAwardTemplate(this_02,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_02;
      if (this_02 != (CAbusiveBehaviorAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_02 + 0x10))(this_02);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_03 = ::operator_new(0x18);
                    /* try { // try from 00848a35 to 00848a39 has its CatchHandler @ 00849cc5 */
      CAmbushAwardTemplate::CAmbushAwardTemplate(this_03,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_03;
      if (this_03 != (CAmbushAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_03 + 0x10))(this_03);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_04 = ::operator_new(0x10);
                    /* try { // try from 00848a75 to 00848a79 has its CatchHandler @ 00849cb5 */
      CBoomerBlunderAwardTemplate::CBoomerBlunderAwardTemplate(this_04,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_04;
      if (this_04 != (CBoomerBlunderAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_04 + 0x10))(this_04);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_05 = ::operator_new(0x1c);
                    /* try { // try from 00848ab5 to 00848ab9 has its CatchHandler @ 00849ca5 */
      CBoomerComboAwardTemplate::CBoomerComboAwardTemplate(this_05,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_05;
      if (this_05 != (CBoomerComboAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_05 + 0x10))(this_05);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_06 = ::operator_new(0x20);
                    /* try { // try from 00848af5 to 00848af9 has its CatchHandler @ 00849c95 */
      CCheckpointCompleteAwardTemplate::CCheckpointCompleteAwardTemplate(this_06,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_06;
      if (this_06 != (CCheckpointCompleteAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_06 + 0x10))(this_06);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_07 = ::operator_new(0x14);
                    /* try { // try from 00848b35 to 00848b39 has its CatchHandler @ 00849c85 */
      CDarkMissionAwardTemplate::CDarkMissionAwardTemplate(this_07,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_07;
      if (this_07 != (CDarkMissionAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_07 + 0x10))(this_07);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_08 = ::operator_new(0x14);
                    /* try { // try from 00848b75 to 00848b79 has its CatchHandler @ 00849c75 */
      CEarlyMourningAwardTemplate::CEarlyMourningAwardTemplate(this_08,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_08;
      if (this_08 != (CEarlyMourningAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_08 + 0x10))(this_08);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_09 = ::operator_new(0x1c);
                    /* try { // try from 00848bb5 to 00848bb9 has its CatchHandler @ 00849c65 */
      CForgetfulAwardTemplate::CForgetfulAwardTemplate(this_09,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_09;
      if (this_09 != (CForgetfulAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_09 + 0x10))(this_09);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_10 = ::operator_new(0x94);
                    /* try { // try from 00848bf5 to 00848bf9 has its CatchHandler @ 00849c55 */
      CFriendlyFireAwardTemplate::CFriendlyFireAwardTemplate(this_10,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_10;
      if (this_10 != (CFriendlyFireAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_10 + 0x10))(this_10);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_11 = ::operator_new(0x14);
                    /* try { // try from 00848c35 to 00848c39 has its CatchHandler @ 00849c45 */
      CGreedAwardTemplate::CGreedAwardTemplate(this_11,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_11;
      if (this_11 != (CGreedAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_11 + 0x10))(this_11);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_12 = ::operator_new(0x10);
                    /* try { // try from 00848c75 to 00848c79 has its CatchHandler @ 00849c35 */
      CGrenadeBlunderAwardTemplate::CGrenadeBlunderAwardTemplate(this_12,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_12;
      if (this_12 != (CGrenadeBlunderAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_12 + 0x10))(this_12);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_13 = ::operator_new(0x24);
                    /* try { // try from 00848cb5 to 00848cb9 has its CatchHandler @ 00849c25 */
      CGrenadeExpertAwardTemplate::CGrenadeExpertAwardTemplate(this_13,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_13;
      if (this_13 != (CGrenadeExpertAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_13 + 0x10))(this_13);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_14 = ::operator_new(0x14);
                    /* try { // try from 00848cf5 to 00848cf9 has its CatchHandler @ 00849c15 */
      CGrenadierAwardTemplate::CGrenadierAwardTemplate(this_14,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_14;
      if (this_14 != (CGrenadierAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_14 + 0x10))(this_14);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_15 = ::operator_new(0x1c);
                    /* try { // try from 00848d35 to 00848d39 has its CatchHandler @ 00849c05 */
      CHeadhunterAwardTemplate::CHeadhunterAwardTemplate(this_15,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_15;
      if (this_15 != (CHeadhunterAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_15 + 0x10))(this_15);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_16 = ::operator_new(0x10);
                    /* try { // try from 00848d75 to 00848d79 has its CatchHandler @ 00849bf5 */
      CHelpingHandAwardTemplate::CHelpingHandAwardTemplate(this_16,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_16;
      if (this_16 != (CHelpingHandAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_16 + 0x10))(this_16);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_17 = ::operator_new(0x14);
                    /* try { // try from 00848db5 to 00848db9 has its CatchHandler @ 00849be5 */
      CHeroAwardTemplate::CHeroAwardTemplate(this_17,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_17;
      if (this_17 != (CHeroAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_17 + 0x10))(this_17);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_18 = ::operator_new(0x110);
                    /* try { // try from 00848df5 to 00848df9 has its CatchHandler @ 00849bd5 */
      CHinderingEscapeAwardTemplate::CHinderingEscapeAwardTemplate(this_18,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_18;
      if (this_18 != (CHinderingEscapeAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_18 + 0x10))(this_18);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_19 = ::operator_new(0x18);
                    /* try { // try from 00848e35 to 00848e39 has its CatchHandler @ 00849bc5 */
      CHulkShutOutAwardTemplate::CHulkShutOutAwardTemplate(this_19,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_19;
      if (this_19 != (CHulkShutOutAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_19 + 0x10))(this_19);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_20 = ::operator_new(0x90);
                    /* try { // try from 00848e75 to 00848e79 has its CatchHandler @ 00849bb5 */
      CHulkSlayerAwardTemplate::CHulkSlayerAwardTemplate(this_20,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_20;
      if (this_20 != (CHulkSlayerAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_20 + 0x10))(this_20);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_21 = ::operator_new(0x1c);
                    /* try { // try from 00848eb5 to 00848eb9 has its CatchHandler @ 00849ba5 */
      CHurdleAwardTemplate::CHurdleAwardTemplate(this_21,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_21;
      if (this_21 != (CHurdleAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_21 + 0x10))(this_21);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_22 = ::operator_new(0x1c);
                    /* try { // try from 00848ef5 to 00848ef9 has its CatchHandler @ 00849b95 */
      CItSurvivorAwardTemplate::CItSurvivorAwardTemplate(this_22,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_22;
      if (this_22 != (CItSurvivorAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_22 + 0x10))(this_22);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_23 = ::operator_new(0x110);
                    /* try { // try from 00848f35 to 00848f39 has its CatchHandler @ 00849b85 */
      CKnockdownAwardTemplate::CKnockdownAwardTemplate(this_23,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_23;
      if (this_23 != (CKnockdownAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_23 + 0x10))(this_23);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_24 = ::operator_new(0x10);
                    /* try { // try from 00848f75 to 00848f79 has its CatchHandler @ 00849b75 */
      CLeft4DeadAwardTemplate::CLeft4DeadAwardTemplate(this_24,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_24;
      if (this_24 != (CLeft4DeadAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_24 + 0x10))(this_24);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_25 = ::operator_new(0x10);
                    /* try { // try from 00848fb5 to 00848fb9 has its CatchHandler @ 00849b65 */
      CLeftBehindAwardTemplate::CLeftBehindAwardTemplate(this_25,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_25;
      if (this_25 != (CLeftBehindAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_25 + 0x10))(this_25);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_26 = ::operator_new(0x110);
                    /* try { // try from 00848ff5 to 00848ff9 has its CatchHandler @ 00849b55 */
      CMurderAwardTemplate::CMurderAwardTemplate(this_26,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_26;
      if (this_26 != (CMurderAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_26 + 0x10))(this_26);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_27 = ::operator_new(0x10);
                    /* try { // try from 00849035 to 00849039 has its CatchHandler @ 00849b45 */
      CMVPAwardTemplate::CMVPAwardTemplate(this_27,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_27;
      if (this_27 != (CMVPAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_27 + 0x10))(this_27);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_28 = ::operator_new(0x10);
                    /* try { // try from 00849075 to 00849079 has its CatchHandler @ 00849b35 */
      CNarrowEscapeAwardTemplate::CNarrowEscapeAwardTemplate(this_28,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_28;
      if (this_28 != (CNarrowEscapeAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_28 + 0x10))(this_28);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_29 = ::operator_new(0x1c);
                    /* try { // try from 008490b5 to 008490b9 has its CatchHandler @ 00849b25 */
      CParryAwardTemplate::CParryAwardTemplate(this_29,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_29;
      if (this_29 != (CParryAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_29 + 0x10))(this_29);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_30 = ::operator_new(0x14);
                    /* try { // try from 008490f5 to 008490f9 has its CatchHandler @ 00849b15 */
      CPerfectTeamAwardTemplate::CPerfectTeamAwardTemplate(this_30,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_30;
      if (this_30 != (CPerfectTeamAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_30 + 0x10))(this_30);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_31 = ::operator_new(0x1c);
                    /* try { // try from 00849135 to 00849139 has its CatchHandler @ 00849b05 */
      CProtectorAwardTemplate::CProtectorAwardTemplate(this_31,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_31;
      if (this_31 != (CProtectorAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_31 + 0x10))(this_31);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_32 = ::operator_new(0x10);
                    /* try { // try from 00849175 to 00849179 has its CatchHandler @ 00849af5 */
      CRescuerAwardTemplate::CRescuerAwardTemplate(this_32,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_32;
      if (this_32 != (CRescuerAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_32 + 0x10))(this_32);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_33 = ::operator_new(0x10);
                    /* try { // try from 008491b5 to 008491b9 has its CatchHandler @ 00849ae5 */
      CReviveFriendAwardTemplate::CReviveFriendAwardTemplate(this_33,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_33;
      if (this_33 != (CReviveFriendAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_33 + 0x10))(this_33);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_34 = ::operator_new(0x10);
                    /* try { // try from 008491f5 to 008491f9 has its CatchHandler @ 00849ad5 */
      CSaviorAwardTemplate::CSaviorAwardTemplate(this_34,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_34;
      if (this_34 != (CSaviorAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_34 + 0x10))(this_34);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_35 = ::operator_new(0x10);
                    /* try { // try from 00849235 to 00849239 has its CatchHandler @ 00849ac5 */
      CScenarioWinAwardTemplate::CScenarioWinAwardTemplate(this_35,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_35;
      if (this_35 != (CScenarioWinAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_35 + 0x10))(this_35);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_36 = ::operator_new(0x14);
                    /* try { // try from 00849275 to 00849279 has its CatchHandler @ 00849ab5 */
      CSecurityFailureAwardTemplate::CSecurityFailureAwardTemplate(this_36,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_36;
      if (this_36 != (CSecurityFailureAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_36 + 0x10))(this_36);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_37 = ::operator_new(0x10);
                    /* try { // try from 008492b5 to 008492b9 has its CatchHandler @ 00849aa5 */
      CSharingAwardTemplate::CSharingAwardTemplate(this_37,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_37;
      if (this_37 != (CSharingAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_37 + 0x10))(this_37);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_38 = ::operator_new(0x20);
                    /* try { // try from 008492f5 to 008492f9 has its CatchHandler @ 00849a95 */
      CSharpshooterAwardTemplate::CSharpshooterAwardTemplate(this_38,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_38;
      if (this_38 != (CSharpshooterAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_38 + 0x10))(this_38);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_39 = ::operator_new(0x10);
                    /* try { // try from 00849335 to 00849339 has its CatchHandler @ 00849a85 */
      CSkeetShootAwardTemplate::CSkeetShootAwardTemplate(this_39,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_39;
      if (this_39 != (CSkeetShootAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_39 + 0x10))(this_39);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_40 = ::operator_new(0x1c);
                    /* try { // try from 00849375 to 00849379 has its CatchHandler @ 00849a75 */
      CSniperAwardTemplate::CSniperAwardTemplate(this_40,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_40;
      if (this_40 != (CSniperAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_40 + 0x10))(this_40);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_41 = ::operator_new(0x14);
                    /* try { // try from 008493b5 to 008493b9 has its CatchHandler @ 00849a65 */
      CToughGuyAwardTemplate::CToughGuyAwardTemplate(this_41,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_41;
      if (this_41 != (CToughGuyAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_41 + 0x10))(this_41);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_42 = ::operator_new(0x10);
                    /* try { // try from 008493f5 to 008493f9 has its CatchHandler @ 00849a55 */
      CVomitStopAwardTemplate::CVomitStopAwardTemplate(this_42,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_42;
      if (this_42 != (CVomitStopAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_42 + 0x10))(this_42);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_43 = ::operator_new(0x30);
                    /* try { // try from 00849435 to 00849439 has its CatchHandler @ 00849a46 */
      CWeaponExpertAwardTemplate::CWeaponExpertAwardTemplate(this_43,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_43;
      if (this_43 != (CWeaponExpertAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_43 + 0x10))(this_43);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_44 = ::operator_new(0x10);
                    /* try { // try from 00849475 to 00849479 has its CatchHandler @ 00849a44 */
      CWhiplashAwardTemplate::CWhiplashAwardTemplate(this_44,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_44;
      if (this_44 != (CWhiplashAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_44 + 0x10))(this_44);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_45 = ::operator_new(0x10);
                    /* try { // try from 008494b5 to 008494b9 has its CatchHandler @ 00849a42 */
      CWitchHarassmentAwardTemplate::CWitchHarassmentAwardTemplate(this_45,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_45;
      if (this_45 != (CWitchHarassmentAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_45 + 0x10))(this_45);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_46 = ::operator_new(0x20);
                    /* try { // try from 008494f5 to 008494f9 has its CatchHandler @ 00849a36 */
      CWitchSlayerAwardTemplate::CWitchSlayerAwardTemplate(this_46,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_46;
      if (this_46 != (CWitchSlayerAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_46 + 0x10))(this_46);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_47 = ::operator_new(0x14);
                    /* try { // try from 00849535 to 00849539 has its CatchHandler @ 00849a34 */
      CGoodTeammateAwardTemplate::CGoodTeammateAwardTemplate(this_47,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_47;
      if (this_47 != (CGoodTeammateAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_47 + 0x10))(this_47);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_64 = ::operator_new(0x10);
                    /* try { // try from 00849575 to 00849579 has its CatchHandler @ 008499f2 */
      CGotchaAwardTemplate::CGotchaAwardTemplate((CGotchaAwardTemplate *)this_64,param_1);
    }
    else {
      iVar1 = CBaseEntity::GetTeamNumber(this_00);
      if (iVar1 != 3) {
        return 1;
      }
      this_48 = ::operator_new(0x10);
                    /* try { // try from 008495c5 to 008495c9 has its CatchHandler @ 008499e5 */
      CGotchaAwardTemplate::CGotchaAwardTemplate(this_48,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_48;
      if (this_48 != (CGotchaAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_48 + 0x10))(this_48);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_49 = ::operator_new(0x10);
                    /* try { // try from 00849605 to 00849609 has its CatchHandler @ 008499cf */
      CPounceAwardTemplate::CPounceAwardTemplate(this_49,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_49;
      if (this_49 != (CPounceAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_49 + 0x10))(this_49);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_50 = ::operator_new(0x10);
                    /* try { // try from 00849645 to 00849649 has its CatchHandler @ 008499e3 */
      CRedecoratorAwardTemplate::CRedecoratorAwardTemplate(this_50,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_50;
      if (this_50 != (CRedecoratorAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_50 + 0x10))(this_50);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_51 = ::operator_new(0x18);
                    /* try { // try from 00849685 to 00849689 has its CatchHandler @ 008499e1 */
      CTongueChokeAwardTemplate::CTongueChokeAwardTemplate(this_51,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_51;
      if (this_51 != (CTongueChokeAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_51 + 0x10))(this_51);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_52 = ::operator_new(0x10);
                    /* try { // try from 008496c5 to 008496c9 has its CatchHandler @ 008499f6 */
      CFallCauserAwardTemplate::CFallCauserAwardTemplate(this_52,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_52;
      if (this_52 != (CFallCauserAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_52 + 0x10))(this_52);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_53 = ::operator_new(0x10);
                    /* try { // try from 00849705 to 00849709 has its CatchHandler @ 008499f4 */
      CSurvivorKillAwardTemplate::CSurvivorKillAwardTemplate(this_53,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_53;
      if (this_53 != (CSurvivorKillAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_53 + 0x10))(this_53);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_54 = ::operator_new(0x10);
                    /* try { // try from 00849745 to 00849749 has its CatchHandler @ 00849a04 */
      CHulkPhysicsAwardTemplate::CHulkPhysicsAwardTemplate(this_54,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_54;
      if (this_54 != (CHulkPhysicsAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_54 + 0x10))(this_54);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_55 = ::operator_new(0x10);
                    /* try { // try from 00849785 to 00849789 has its CatchHandler @ 00849a02 */
      CHulkRockAwardTemplate::CHulkRockAwardTemplate(this_55,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_55;
      if (this_55 != (CHulkRockAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_55 + 0x10))(this_55);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_56 = ::operator_new(0x30);
                    /* try { // try from 008497c5 to 008497c9 has its CatchHandler @ 00849a12 */
      CHulkPunchAwardTemplate::CHulkPunchAwardTemplate(this_56,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_56;
      if (this_56 != (CHulkPunchAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_56 + 0x10))(this_56);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_57 = ::operator_new(0x10);
                    /* try { // try from 00849805 to 00849809 has its CatchHandler @ 00849a06 */
      CClawHitAwardTemplate::CClawHitAwardTemplate(this_57,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_57;
      if (this_57 != (CClawHitAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_57 + 0x10))(this_57);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_58 = ::operator_new(0x20);
                    /* try { // try from 00849845 to 00849849 has its CatchHandler @ 00849a16 */
      CVomitHitAwardTemplate::CVomitHitAwardTemplate(this_58,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_58;
      if (this_58 != (CVomitHitAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_58 + 0x10))(this_58);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_59 = ::operator_new(0x14);
                    /* try { // try from 00849885 to 00849889 has its CatchHandler @ 00849a14 */
      CExplosionAwardTemplate::CExplosionAwardTemplate(this_59,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_59;
      if (this_59 != (CExplosionAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_59 + 0x10))(this_59);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_60 = ::operator_new(0x34);
                    /* try { // try from 008498c5 to 008498c9 has its CatchHandler @ 00849a24 */
      CHitEverybodyAwardTemplate::CHitEverybodyAwardTemplate(this_60,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_60;
      if (this_60 != (CHitEverybodyAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_60 + 0x10))(this_60);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_61 = ::operator_new(0x18);
                    /* try { // try from 00849905 to 00849909 has its CatchHandler @ 00849a22 */
      CHitAndRunAwardTemplate::CHitAndRunAwardTemplate(this_61,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_61;
      if (this_61 != (CHitAndRunAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_61 + 0x10))(this_61);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_62 = ::operator_new(0x10);
                    /* try { // try from 00849945 to 00849949 has its CatchHandler @ 00849a32 */
      CMostHitsAwardTemplate::CMostHitsAwardTemplate(this_62,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_62;
      if (this_62 != (CMostHitsAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_62 + 0x10))(this_62);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_63 = ::operator_new(0x10);
                    /* try { // try from 00849985 to 00849989 has its CatchHandler @ 00849a26 */
      CNoSurvivorsAwardTemplate::CNoSurvivorsAwardTemplate(this_63,param_1);
      local_20[0] = (CAbandonmentAwardTemplate *)this_63;
      if (this_63 != (CNoSurvivorsAwardTemplate *)0x0) {
        (**(code **)(*(int *)this_63 + 0x10))(this_63);
        CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
        ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                        *)param_2,0xffff,(CAwardTemplate **)local_20);
      }
      this_64 = ::operator_new(0x10);
                    /* try { // try from 008499c5 to 008499c9 has its CatchHandler @ 00849cf5 */
      CDoomsdayAwardTemplate::CDoomsdayAwardTemplate(this_64,param_1);
    }
    if (this_64 != (CDoomsdayAwardTemplate *)0x0) {
      local_20[0] = (CAbandonmentAwardTemplate *)this_64;
      (**(code **)(*(int *)this_64 + 0x10))(this_64);
      CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
      ::InsertBefore((CUtlLinkedList<CAwardTemplate*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CAwardTemplate*,unsigned_short>,unsigned_short>>
                      *)param_2,0xffff,(CAwardTemplate **)local_20);
    }
    return 1;
  }
  return 0;
}

SourceMod gamedata

paste into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

Just a Signatures{} block, ready to drop into a gamedata file. Wire it up in your plugin however you like - SDKCall, DHooks, raw memory ops, or anything else.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)