Advertisement
Riremito

Untitled

Oct 29th, 2023
787
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 27.75 KB | None | 0 0
  1. void __userpurge CField::OnPacket(int this@<ecx>, int a2@<edi>, int a3@<esi>, int a4, void *iPacket)
  2. {
  3.   int v5; // esi
  4.   unsigned __int8 v6; // al
  5.   _DWORD *v7; // ecx
  6.   int v8; // ecx
  7.   int v9; // ecx
  8.   int v10; // ecx
  9.   int v11; // esi
  10.   _DWORD *v12; // eax
  11.   char v13; // al
  12.   _DWORD *v14; // ecx
  13.   void *v15; // esi
  14.   int v16; // eax
  15.   char v17; // al
  16.   int *v18; // esi
  17.   _DWORD *v19; // ecx
  18.   int v20; // [esp-14h] [ebp-14h] BYREF
  19.   void *v21; // [esp-10h] [ebp-10h]
  20.   int v22; // [esp-Ch] [ebp-Ch]
  21.   int v23; // [esp-8h] [ebp-8h]
  22.   int v24; // [esp-4h] [ebp-4h]
  23.  
  24.   if ( a4 > 0x18D )
  25.   {
  26.     if ( a4 == 0x1C1 )
  27.     {
  28.       sub_A55B50((int)iPacket);
  29.     }
  30.     else if ( a4 == 0x1C2 )
  31.     {
  32.       CWvsContext::OnSetLogoutGiftConfig((int *)dword_D050C0, (int)iPacket);
  33.     }
  34.     else
  35.     {
  36. LABEL_42:
  37.       if ( (unsigned int)(a4 - 0xAE) <= 0x6F )
  38.       {
  39.         if ( a4 == 0xAE )
  40.         {
  41.           CUserPool::OnUserEnterField((_DWORD *)dword_D09584, (int)iPacket);
  42.         }
  43.         else if ( a4 == 0xAF )
  44.         {
  45.           CUserPool::OnUserLeaveField((_DWORD *)dword_D09584, (int)iPacket);
  46.         }
  47.         else if ( (unsigned int)(a4 - 0xB0) > 0x1E )
  48.         {
  49.           if ( (unsigned int)(a4 - 0xCF) <= 0x15 )
  50.           {
  51.             v24 = a3;
  52.             v23 = a2;
  53.             v17 = CInPacket::Decode4((int)iPacket);
  54.             v18 = (int *)sub_9CDB10(v17);
  55.             if ( v18 && !*(_DWORD *)(dword_D050C0 + 14452) )
  56.             {
  57.               if ( !v18[282] )
  58.               {
  59.                 switch ( a4 )
  60.                 {
  61.                   case 0xD0:
  62.                   case 0xD1:
  63.                   case 0xD2:
  64.                   case 0xD3:
  65.                     CUserRemote::OnAttack((int)v18, a4, (int)iPacket);
  66.                     break;
  67.                   case 0xD4:
  68.                     CUserRemote::OnSkillPrepare(v18, (int)iPacket);
  69.                     break;
  70.                   case 0xD5:
  71.                     CUserRemote::OnMovingShootAttackPrepare((int)v18, (int)iPacket);
  72.                     break;
  73.                   case 0xD6:
  74.                     CUserRemote::OnSkillCancel(v18, (int *)iPacket);
  75.                     break;
  76.                   case 0xD7:
  77.                     CUserRemote::OnHit(v18, (int)iPacket);
  78.                     break;
  79.                   case 0xD8:
  80.                     CUser::OnEmotion(v18, (int)iPacket);
  81.                     break;
  82.                   case 0xD9:
  83.                     CUserRemote::OnSetActiveEffectItem(iPacket);
  84.                     break;
  85.                   case 0xDA:
  86.                     CUserRemote::OnShowUpgradeTombEffect(iPacket);
  87.                     break;
  88.                   case 0xDD:
  89.                     CUser::OnEffect(v18, (int)iPacket);
  90.                     break;
  91.                   case 0xE3:
  92.                     sub_9D7400(v18, (int)iPacket);
  93.                     break;
  94.                   case 0xE4:
  95.                     CUserRemote::OnThrowGrenade((int)iPacket);
  96.                     break;
  97.                   default:
  98.                     break;
  99.                 }
  100.               }
  101.               switch ( a4 )
  102.               {
  103.                 case 0xCF:
  104.                   CUserRemote::OnMove(v18, (int)iPacket);
  105.                   break;
  106.                 case 0xDB:
  107.                   CUserRemote::OnSetActivePortableChair(v18, (int)iPacket);
  108.                   break;
  109.                 case 0xDC:
  110.                   CUserRemote::OnAvatarModified(v18, (int)iPacket);
  111.                   break;
  112.                 case 0xDE:
  113.                   CUserRemote::OnSetTemporaryStat(v18, (int)iPacket);
  114.                   break;
  115.                 case 0xDF:
  116.                   CUserRemote::OnResetTemporaryStat(v18, (int)iPacket);
  117.                   break;
  118.                 case 0xE0:
  119.                   CUserRemote::OnReceiveHP(v18, (int)iPacket);
  120.                   break;
  121.                 case 0xE1:
  122.                   CUserRemote::OnGuildNameChanged((int)iPacket);
  123.                   break;
  124.                 case 0xE2:
  125.                   CUserRemote::OnGuildMarkChanged((int)v18, (int)iPacket);
  126.                   break;
  127.                 default:
  128.                   return;
  129.               }
  130.             }
  131.           }
  132.           else if ( (unsigned int)(a4 - 229) <= 0x37 )
  133.           {
  134.             v19 = *(_DWORD **)(dword_D09584 + 8);
  135.             if ( v19 )
  136.             {
  137.               switch ( a4 )
  138.               {
  139.                 case 0xE5:
  140.                   CUserLocal::OnSitResult(v19, (int)iPacket);
  141.                   break;
  142.                 case 0xE6:
  143.                   CUser::OnEmotion(v19, (int)iPacket);
  144.                   break;
  145.                 case 0xE7:
  146.                   CUser::OnEffect(v19, (int)iPacket);
  147.                   break;
  148.                 case 0xE8:
  149.                   CUserLocal::OnTeleport(v19, (int)iPacket);
  150.                   break;
  151.                 case 0xEA:
  152.                   CUserLocal::OnMesoGive_Succeeded_((int)iPacket);
  153.                   break;
  154.                 case 0xEB:
  155.                   UserLocal::OnMesoGive_Failed(v19, (int)iPacket);
  156.                   break;
  157.                 case 0xEC:
  158.                   CUserLocal::OnFieldFadeInOut((char *)v19, (int)iPacket);
  159.                   break;
  160.                 case 0xED:
  161.                   CUserLocal::OnFieldFadeOutForce((int)iPacket);
  162.                   break;
  163.                 case 0xEE:
  164.                   CUserLocal::OnRandomMesobag_Succeeded((int)iPacket);
  165.                   break;
  166.                 case 0xEF:
  167.                   CUserLocal::OnRandomMesobag_Failed(v19, (int)iPacket);
  168.                   break;
  169.                 case 0xF0:
  170.                   CUserLocal::OnQuestResult((int)iPacket);
  171.                   break;
  172.                 case 0xF1:
  173.                   CUserLocal::OnNotifyHPDecByField((int)iPacket);
  174.                   break;
  175.                 case 0xF2:
  176.                   sub_993760(v19, (char *)iPacket);
  177.                   break;
  178.                 case 0xF3:
  179.                   CUserLocal::OnBalloonMsg(v19, (int)iPacket);
  180.                   break;
  181.                 case 0xF4:
  182.                   CUserLocal::OnPlayEventSound((char *)iPacket);
  183.                   break;
  184.                 case 0xF5:
  185.                   CUserLocal::OnPlayMinigameSound((int)iPacket);
  186.                   break;
  187.                 case 0xF6:
  188.                   sub_995910(iPacket);
  189.                   break;
  190.                 case 0xF7:
  191.                   CUserLocal::OnMakerResult((char **)iPacket);
  192.                   break;
  193.                 case 0xF8:
  194.                   sub_982950((int)iPacket);
  195.                   break;
  196.                 case 0xF9:
  197.                   CUserLocal::OnOpenClassCompetitionPage((int)iPacket);
  198.                   break;
  199.                 case 0xFA:
  200.                   CUserLocal::OnOpenUI((int)iPacket);
  201.                   break;
  202.                 case 0xFB:
  203.                   CUserLocal::OnOpenUIWithOption((int)iPacket);
  204.                   break;
  205.                 case 0xFC:
  206.                   CUserLocal::OnSetDirectionMode(v19, (int)iPacket);
  207.                   break;
  208.                 case 0xFD:
  209.                   CUserLocal::OnSetStandAloneMode((int)iPacket);
  210.                   break;
  211.                 case 0xFE:
  212.                   CUserLocal::OnHireTutor(v19, (unsigned int *)iPacket);
  213.                   break;
  214.                 case 0xFF:
  215.                   CUserLocal::OnTutorMsg(v19, (int)iPacket);
  216.                   break;
  217.                 case 0x100:
  218.                   CUserLocal::OnIncComboResponse(v19, (int)iPacket);
  219.                   break;
  220.                 case 0x101:
  221.                   sub_99B300(v19, (int)iPacket);
  222.                   break;
  223.                 case 0x102:
  224.                   sub_998CC0((int)iPacket);
  225.                   break;
  226.                 case 0x103:
  227.                   sub_98DC00(v19, (int)iPacket);
  228.                   break;
  229.                 case 0x104:
  230.                   CUser::OnRandomEmotion(iPacket);
  231.                   break;
  232.                 case 0x105:
  233.                   CUserLocal::OnResignQuestReturn((int)iPacket);
  234.                   break;
  235.                 case 0x106:
  236.                   CUserLocal::OnPassMateName((int)iPacket);
  237.                   break;
  238.                 case 0x107:
  239.                   CUserLocal::OnRadioSchedule((int)iPacket);
  240.                   break;
  241.                 case 0x108:
  242.                   CUserLocal::OnOpenSkillGuide(iPacket);
  243.                   break;
  244.                 case 0x109:
  245.                   CUserLocal::OnNoticeMsg((int)iPacket);
  246.                   break;
  247.                 case 0x10A:
  248.                   CUserLocal::OnChatMsg((int)iPacket);
  249.                   break;
  250.                 case 0x10B:
  251.                   CUserLocal::OnBuffzoneEffect((int)iPacket);
  252.                   break;
  253.                 case 0x10C:
  254.                   sub_982A60((int)iPacket);
  255.                   break;
  256.                 case 0x10D:
  257.                   CUserLocal::OnTimeBombAttack(v19, (int)iPacket);
  258.                   break;
  259.                 case 0x10E:
  260.                   CUser::OnPassiveMove(v19, (int)iPacket);
  261.                   break;
  262.                 case 0x10F:
  263.                   CUserLocal::OnFollowCharacterFailed(iPacket);
  264.                   break;
  265.                 case 0x110:
  266.                   CUserLocal::OnVengeanceSkillApply(iPacket);
  267.                   break;
  268.                 case 0x111:
  269.                   v19[4547] = 1;
  270.                   break;
  271.                 case 0x112:
  272.                   if ( dword_D0F980 )
  273.                     sub_7C7450((unsigned int *)dword_D0F980, iPacket);
  274.                   break;
  275.                 case 0x113:
  276.                   sub_998B40(v19, (int)iPacket);
  277.                   break;
  278.                 case 0x114:
  279.                   sub_982B60((int)iPacket);
  280.                   break;
  281.                 case 0x115:
  282.                   sub_99E350((int)iPacket);
  283.                   break;
  284.                 case 0x116:
  285.                   sub_5777A0(v19 + 4447, (int)iPacket);
  286.                   break;
  287.                 case 0x117:
  288.                   CUserLocal::OnQuestGuideResult((int)iPacket);
  289.                   break;
  290.                 case 0x118:
  291.                   sub_98DDC0((int)iPacket);
  292.                   break;
  293.                 case 0x119:
  294.                   sub_98DF90(v19, (int)iPacket);
  295.                   break;
  296.                 case 0x11A:
  297.                   sub_98F7B0((int)iPacket);
  298.                   break;
  299.                 case 0x11B:
  300.                   sub_982C60((int)iPacket);
  301.                   break;
  302.                 case 0x11C:
  303.                   CUserLocal::OnSkillCooltimeSet((int)iPacket);
  304.                   break;
  305.                 default:
  306.                   return;
  307.               }
  308.             }
  309.           }
  310.         }
  311.         else
  312.         {
  313.           CUserPool::OnUserCommonPacket((_DWORD *)dword_D09584, a4, (int)iPacket);
  314.         }
  315.       }
  316.       else if ( (unsigned int)(a4 - 286) > 5 )
  317.       {
  318.         if ( (unsigned int)(a4 - 292) <= 0x1A )
  319.         {
  320.           switch ( a4 )
  321.           {
  322.             case 0x124:
  323.               CMobPool::OnMobEnterField(iPacket);
  324.               break;
  325.             case 0x125:
  326.               CMobPool::OnMobLeaveField(iPacket);
  327.               break;
  328.             case 0x126:
  329.               CMobPool::OnMobChangeController(iPacket);
  330.               break;
  331.             case 0x131:
  332.               CMobPool::OnMobCrcKeyChanged(iPacket);
  333.               break;
  334.             default:
  335.               if ( (unsigned int)(a4 - 0x127) <= 0x16 )
  336.               {
  337.                 v24 = a3;
  338.                 v23 = a2;
  339.                 v13 = CInPacket::Decode4((int)iPacket);
  340.                 v14 = (_DWORD *)sub_441250(v13);
  341.                 if ( v14 )
  342.                 {
  343.                   if ( a4 == 0x138 )
  344.                   {
  345.                     CMob::OnEscortStopEndPermmision(v14);
  346.                   }
  347.                   else
  348.                   {
  349.                     switch ( a4 )
  350.                     {
  351.                       case 0x127:
  352.                         CMob::OnMove((int)iPacket);
  353.                         break;
  354.                       case 0x128:
  355.                         CMob::OnCtrlAck(v14, (int)iPacket);
  356.                         break;
  357.                       case 0x12A:
  358.                         CMob::OnStatSet(v14, (int)iPacket);
  359.                         break;
  360.                       case 0x12B:
  361.                         CMob::OnStatReset(v14, (int)iPacket);
  362.                         break;
  363.                       case 0x12C:
  364.                         CMob::OnSuspendReset(iPacket);
  365.                         break;
  366.                       case 0x12D:
  367.                         CMob::OnAffected(iPacket);
  368.                         break;
  369.                       case 0x12E:
  370.                         CMob::OnDamaged(iPacket);
  371.                         break;
  372.                       case 0x12F:
  373.                         CMob::OnSpecialEffectBySkill(v14, (void **)iPacket);
  374.                         break;
  375.                       case 0x132:
  376.                         CMob::OnHPIndicator(v14, (int)iPacket);
  377.                         break;
  378.                       case 0x133:
  379.                         CMob::OnCatchEffect(iPacket);
  380.                         break;
  381.                       case 0x134:
  382.                         CMob::OnEffectByItem(iPacket);
  383.                         break;
  384.                       case 0x135:
  385.                         CMob::OnMobSpeaking(iPacket);
  386.                         break;
  387.                       case 0x136:
  388.                         CMob::OnMobSkillDelay(v14, (int)iPacket);
  389.                         break;
  390.                       case 0x137:
  391.                         CMob::OnEscortFullPath(v14, (int)iPacket);
  392.                         break;
  393.                       case 0x139:
  394.                         CMob::OnEscortStopSay(v14, (int)iPacket);
  395.                         break;
  396.                       case 0x13A:
  397.                         CMob::OnEscortReturnBefore(v14, iPacket);
  398.                         break;
  399.                       case 0x13B:
  400.                         CMob::OnNextAttack(v14, (int)iPacket);
  401.                         break;
  402.                       case 0x13C:
  403.                         CMob::OnMobTeleportRequest(v14, (int)iPacket);
  404.                         break;
  405.                       case 0x13D:
  406.                         CMob::OnMobAttackedByMob(v14, (int)iPacket);
  407.                         break;
  408.                       default:
  409.                         return;
  410.                     }
  411.                   }
  412.                 }
  413.               }
  414.               break;
  415.           }
  416.         }
  417.         else if ( (unsigned int)(a4 - 319) > 7 )
  418.         {
  419.           if ( (unsigned int)(a4 - 327) <= 2 )
  420.           {
  421.             switch ( a4 )
  422.             {
  423.               case 0x147:
  424.                 CEmployeePool::OnEmployeeEnterField(dword_D0B9F0, a3, (int)iPacket);
  425.                 break;
  426.               case 0x148:
  427.                 CEmployeePool::OnEmployeeLeaveField(iPacket);
  428.                 break;
  429.               case 0x149:
  430.                 CEmployeePool::OnEmployeeMiniRoomBalloon((int)iPacket);
  431.                 break;
  432.             }
  433.           }
  434.           else if ( (unsigned int)(a4 - 330) <= 2 )
  435.           {
  436.             if ( a4 == 0x14A )
  437.             {
  438.               CDropPool::OnDropEnterField((void *)dword_D0B990, (int)iPacket);
  439.             }
  440.             else if ( a4 == 0x14C )
  441.             {
  442.               CDropPool::OnDropLeaveField((int)iPacket);
  443.             }
  444.           }
  445.           else if ( (unsigned int)(a4 - 333) <= 2 )
  446.           {
  447.             switch ( a4 )
  448.             {
  449.               case 0x14D:
  450.                 v24 = 0;
  451.                 v23 = 0;
  452.                 v22 = 0;
  453.                 v21 = 0;
  454.                 v20 = dword_D0BA94;
  455.                 v12 = (_DWORD *)sub_794940();
  456.                 sub_429CE0(v12, (int)&v20, 496);
  457.                 sub_9F6190(v20, v21, v22, v23, v24);
  458.                 break;
  459.               case 0x14E:
  460.                 CMessageBoxPool::OnMessageBoxEnterField((void *)dword_D0BA94, (int)iPacket);
  461.                 break;
  462.               case 0x14F:
  463.                 CMessageBoxPool::OnMessageBoxLeaveField(iPacket);
  464.                 break;
  465.             }
  466.           }
  467.           else if ( (unsigned int)(a4 - 336) <= 1 )
  468.           {
  469.             if ( a4 == 0x150 )
  470.             {
  471.               CAffectedAreaPool::OnAffectedAreaCreated((_DWORD *)dword_D0952C, (int)iPacket);
  472.             }
  473.             else if ( a4 == 0x151 )
  474.             {
  475.               CAffectedAreaPool::OnAffectedAreaRemoved(iPacket);
  476.             }
  477.           }
  478.           else if ( (unsigned int)(a4 - 338) <= 1 )
  479.           {
  480.             if ( a4 == 0x152 )
  481.             {
  482.               CTownPortalPool::OnTownPortalCreated((void *)dword_D0BA98, (int *)iPacket);
  483.             }
  484.             else if ( a4 == 0x153 )
  485.             {
  486.               CTownPortalPool::OnTownPortalRemoved(iPacket);
  487.             }
  488.           }
  489.           else if ( (unsigned int)(a4 - 340) <= 1 )
  490.           {
  491.             if ( a4 == 0x154 )
  492.             {
  493.               COpenGatePool::OnOpenGateCreated((void *)dword_D0BA9C, (int)iPacket);
  494.             }
  495.             else if ( a4 == 0x155 )
  496.             {
  497.               COpenGatePool::OnOpenGateRemoved(iPacket);
  498.             }
  499.           }
  500.           else if ( (unsigned int)(a4 - 345) <= 3 )
  501.           {
  502.             switch ( a4 )
  503.             {
  504.               case 0x159:
  505.                 CReactorPool::OnReactorChangeState((int)iPacket);
  506.                 break;
  507.               case 0x15A:
  508.                 CReactorPool::OnReactorMove((int)iPacket);
  509.                 break;
  510.               case 0x15B:
  511.                 CReactorPool::OnReactorEnterField((void *)dword_D0BA80, (int *)iPacket);
  512.                 break;
  513.               case 0x15C:
  514.                 CReactorPool::OnReactorLeaveField((int)iPacket);
  515.                 break;
  516.               default:
  517.                 return;
  518.             }
  519.           }
  520.           else if ( a4 == 0x176 )
  521.           {
  522.             CScriptMan::OnPacket((_DWORD *)dword_D0BA90, (int)iPacket);
  523.           }
  524.           else if ( (unsigned int)(a4 - 414) <= 3 )
  525.           {
  526.             v24 = a3;
  527.             v11 = dword_D0B85C;
  528.             switch ( a4 )
  529.             {
  530.               case 0x19E:
  531.                 CFuncKeyMappedMan::OnInit((int *)dword_D0B85C, (int)iPacket);
  532.                 break;
  533.               case 0x19F:
  534.                 sub_576ED0((_DWORD *)dword_D0B85C, (int)iPacket);
  535.                 break;
  536.               case 0x1A0:
  537.                 sub_576F00((_DWORD *)dword_D0B85C, (int)iPacket);
  538.                 break;
  539.               case 0x1A1:
  540.                 *(_DWORD *)(v11 + 1336) = CInPacket::Decode4((int)iPacket);
  541.                 break;
  542.               default:
  543.                 return;
  544.             }
  545.           }
  546.           else if ( (unsigned int)(a4 - 375) > 1 )
  547.           {
  548.             if ( (unsigned int)(a4 - 380) > 1 )
  549.             {
  550.               if ( (unsigned int)(a4 - 136) > 2 )
  551.               {
  552.                 if ( (unsigned int)(a4 - 139) <= 2 )
  553.                 {
  554.                   switch ( a4 )
  555.                   {
  556.                     case 0x8B:
  557.                       CMapLoadable::OnSetBackEffect((int)iPacket);
  558.                       break;
  559.                     case 0x8C:
  560.                       CMapLoadable::OnSetMapObjectVisible((int)iPacket);
  561.                       break;
  562.                     case 0x8D:
  563.                       CMapLoadable::OnClearBackEffect((char *)(this - 8));
  564.                       break;
  565.                   }
  566.                 }
  567.                 else if ( (unsigned int)(a4 - 377) > 1 )
  568.                 {
  569.                   if ( a4 < 426 || a4 > 428 )
  570.                   {
  571.                     if ( (unsigned int)(a4 - 429) <= 4 )
  572.                     {
  573.                       v24 = a3;
  574.                       v5 = dword_D09980;
  575.                       switch ( a4 )
  576.                       {
  577.                         case 0x1AE:
  578.                           CBattleRecordMan::OnDotDamageInfo((_DWORD *)dword_D09980, (int)iPacket);
  579.                           break;
  580.                         case 0x1AF:
  581.                           v6 = CInPacket::Decode1((int)iPacket);
  582.                           *(_DWORD *)(v5 + 12) = v6;
  583.                           if ( !v6 )
  584.                           {
  585.                             CWvsContext::UI_Close(dword_D050C0, 0x23u);
  586.                             *(_DWORD *)(v5 + 8) = 0;
  587.                           }
  588.                           break;
  589.                         case 0x1B0:
  590.                           sub_4707D0((_DWORD *)dword_D09980, (int)iPacket);
  591.                           break;
  592.                       }
  593.                     }
  594.                     else if ( (unsigned int)(a4 - 0x1B5) > 3 )
  595.                     {
  596.                       if ( (unsigned int)(a4 - 0x1B9) > 3 )
  597.                       {
  598.                         if ( (unsigned int)(a4 - 0x1BD) > 3 )
  599.                         {
  600.                           if ( (unsigned int)(a4 - 0x156) <= 2 )
  601.                           {
  602.                             switch ( a4 )
  603.                             {
  604.                               case 0x156:
  605.                                 sub_581600((void *)dword_D0BAA0, (int *)iPacket);
  606.                                 break;
  607.                               case 0x157:
  608.                                 sub_5812D0((int)iPacket);
  609.                                 break;
  610.                               case 0x158:
  611.                                 sub_5805D0((int)iPacket);
  612.                                 break;
  613.                             }
  614.                           }
  615.                         }
  616.                         else
  617.                         {
  618.                           v10 = this - 8;
  619.                           if ( *(_DWORD *)(v10 + 636) )
  620.                             (*(void (__thiscall **)(_DWORD, int, void *))(**(_DWORD **)(v10 + 636) + 60))(
  621.                               *(_DWORD *)(v10 + 636),
  622.                               a4,
  623.                               iPacket);
  624.                         }
  625.                       }
  626.                       else
  627.                       {
  628.                         v9 = this - 8;
  629.                         if ( *(_DWORD *)(v9 + 632) )
  630.                           (*(void (__thiscall **)(_DWORD, int, void *))(**(_DWORD **)(v9 + 632) + 60))(
  631.                             *(_DWORD *)(v9 + 632),
  632.                             a4,
  633.                             iPacket);
  634.                       }
  635.                     }
  636.                     else
  637.                     {
  638.                       v8 = dword_D0BAA4;
  639.                       switch ( a4 )
  640.                       {
  641.                         case 0x1B5:
  642.                           CMapleTVMan::OnSetMessage(dword_D0BAA4, (int)iPacket);
  643.                           break;
  644.                         case 0x1B6:
  645.                           *(_DWORD *)(dword_D0BAA4 + 8) = 0;
  646.                           *(_DWORD *)(v8 + 12) = 1;
  647.                           *(_DWORD *)(v8 + 744) = 0;
  648.                           break;
  649.                         case 0x1B7:
  650.                           CMapleTVMan::OnSendMessageResult((int)iPacket);
  651.                           break;
  652.                         default:
  653.                           return;
  654.                       }
  655.                     }
  656.                   }
  657.                 }
  658.                 else
  659.                 {
  660.                   CAdminShopDlg::OnPacket((int *)a4, (int)iPacket);
  661.                 }
  662.               }
  663.               else
  664.               {
  665.                 CStage::OnPacket((char *)this, a4, (int)iPacket);
  666.               }
  667.             }
  668.             else
  669.             {
  670.               CStoreBankDlg::OnPacket((int *)a4, (int)iPacket);
  671.             }
  672.           }
  673.           else
  674.           {
  675.             CShopDlg::OnPacket(a4, (int)iPacket);
  676.           }
  677.         }
  678.         else
  679.         {
  680.           CNpcPool::OnPacket(a2, (_DWORD *)dword_D0BA88, a4, (char *)iPacket);
  681.         }
  682.       }
  683.       else
  684.       {
  685.         v24 = a3;
  686.         v23 = a2;
  687.         v15 = (void *)dword_D0BA84;
  688.         v16 = CInPacket::Decode4((int)iPacket);
  689.         switch ( a4 )
  690.         {
  691.           case 0x11E:
  692.             CSummonedPool::OnCreated(v15, v16, (char *)iPacket);
  693.             break;
  694.           case 0x11F:
  695.             CSummonedPool::OnRemoved(v16, (int)iPacket);
  696.             break;
  697.           case 0x120:
  698.             CSummonedPool::OnMove(v16, (int)iPacket);
  699.             break;
  700.           case 0x121:
  701.             CSummonedPool::OnAttack(v16, iPacket);
  702.             break;
  703.           case 0x122:
  704.             CSummonedPool::OnSkill(v16, iPacket);
  705.             break;
  706.           case 0x123:
  707.             CSummonedPool::OnHit(v16, (int)iPacket);
  708.             break;
  709.           default:
  710.             return;
  711.         }
  712.       }
  713.     }
  714.   }
  715.   else if ( a4 == 0x18D )
  716.   {
  717.     CParcelDlg::OnPacket((int)iPacket);
  718.   }
  719.   else
  720.   {
  721.     switch ( a4 )
  722.     {
  723.       case 0x8E:
  724.         CField::OnTransferFieldReqIgnored((int *)iPacket);
  725.         break;
  726.       case 0x8F:
  727.         CField::OnTransferChannelReqIgnored((int)iPacket);
  728.         break;
  729.       case 0x90:
  730.         CField::OnFieldSpecificData((void *)(this - 8), (int)iPacket);
  731.         break;
  732.       case 0x91:
  733.         CField::OnGroupMessage((int)iPacket);
  734.         break;
  735.       case 0x92:
  736.         CField::OnWhisper((LONG *)(this - 8), (int)iPacket);
  737.         break;
  738.       case 0x93:
  739.         CField::OnSummonItemInavailable((int)iPacket);
  740.         break;
  741.       case 0x94:
  742.         CField::OnFieldEffect((void *)(this - 8), (int)iPacket);
  743.         break;
  744.       case 0x95:
  745.         CField::OnFieldObstacleOnOff((int)iPacket);
  746.         break;
  747.       case 0x96:
  748.         CField::OnFieldObstacleOnOffStatus((int)iPacket);
  749.         break;
  750.       case 0x97:
  751.         CField::OnFieldObstacleAllReset((_DWORD *)(this - 8), (int)iPacket);
  752.         break;
  753.       case 0x98:
  754.         sub_5311D0((int)iPacket);
  755.         break;
  756.       case 0x99:
  757.         CField::OnBlowWeather((int)iPacket);
  758.         break;
  759.       case 0x9A:
  760.         CField::OnPlayJukeBox(this - 8, (int)iPacket);
  761.         break;
  762.       case 0x9B:
  763.         CField::OnAdminResult((int)iPacket);
  764.         break;
  765.       case 0x9C:
  766.         CField::OnQuiz((int)iPacket);
  767.         break;
  768.       case 0x9D:
  769.         CField::OnDesc((_DWORD *)(this - 8), (int)iPacket);
  770.         break;
  771.       case 0x9E:
  772.         (*(void (__thiscall **)(int, void *))(*(_DWORD *)(this - 8) + 36))(this - 8, iPacket);
  773.         break;
  774.       case 0xA1:
  775.         CField::OnSetQuestClear((int)iPacket);
  776.         break;
  777.       case 0xA2:
  778.         CField::OnSetQuestTime((int)iPacket);
  779.         break;
  780.       case 0xA3:
  781.         CField::OnSetObjectState((int)iPacket);
  782.         break;
  783.       case 0xA4:
  784.         v7 = *(_DWORD **)(this + 520);
  785.         if ( v7 )
  786.           CWnd::Destroy(v7);
  787.         break;
  788.       case 0xA6:
  789.         CField::OnStalkResult((int)iPacket);
  790.         break;
  791.       case 0xA9:
  792.         CQuickslotKeyMappedMan::OnInit((int *)dword_D0B938, (int)iPacket);
  793.         break;
  794.       case 0xAA:
  795.         CField::OnFootHoldInfo((int)iPacket);
  796.         break;
  797.       case 0xAB:
  798.         CField::OnRequestFootHoldInfo((_DWORD *)(this - 8), (int)iPacket);
  799.         break;
  800.       case 0xAD:
  801.         sub_53B4F0((_DWORD *)(this - 8), iPacket);
  802.         break;
  803.       case 0xC0:
  804.         return;
  805.       case 0x171:
  806.         CField::OnHontaleTimer((char *)iPacket);
  807.         break;
  808.       case 0x173:
  809.         CField::OnChaosZakumTimer((char)iPacket);
  810.         break;
  811.       case 0x174:
  812.         CField::OnHontailTimer((char *)iPacket);
  813.         break;
  814.       case 0x175:
  815.         CField::OnZakumTimer((char *)iPacket);
  816.         break;
  817.       case 0x17B:
  818.         CTrunkDlg::OnPacket((int)iPacket);
  819.         break;
  820.       case 0x17E:
  821.         CRPSGameDlg::OnPacket((int)iPacket);
  822.         break;
  823.       case 0x17F:
  824.         CUIMessenger::OnPacket((char *)iPacket);
  825.         break;
  826.       case 0x180:
  827.         CMiniRoomBaseDlg::OnPacketBase((int)iPacket);
  828.         break;
  829.       default:
  830.         goto LABEL_42;
  831.     }
  832.   }
  833. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement