Advertisement
em00se

MerchantRoomInit

Jan 16th, 2023
683
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.21 KB | None | 0 0
  1. void __cdecl MerchantRoomInit()
  2. {
  3.   uint16_t curRoomId_1C; // ax
  4.   Flags_SCENARIO_1 v1; // eax
  5.   Flags_SCENARIO_1 v2; // eax
  6.   uint16_t v3; // ax
  7.   uint16_t v4; // ax
  8.  
  9.   if ( (pG->Flags_SYSTEM_0_54[0] & SYS_PS2_ADA_GAME) != 0 )
  10.   {
  11.     MerchantRoomInit_Ada();
  12.   }
  13.   else
  14.   {
  15.     merchantChar.m_p_info_0 = &merchant_info_A;
  16.     merchantChar.m_p_data_4 = merchantData;
  17.     merchantChar.m_p_sell_8 = g_item_price_tbl;
  18.     merchantChar.m_p_exer_C = g_item_price_tbl;
  19.     merchantChar.m_p_lvup_10 = level_price;
  20.     curRoomId_1C = pG->SaveWk_4F90.curRoomId_1C;
  21.     switch ( curRoomId_1C )
  22.     {
  23.       case 0x102u:
  24.         if ( !j_cRoomData::checkPassed(&RoomData, curRoomId_1C, 0) )
  25.         {
  26.           j_levelDataAdd(merchantData, level_styer, 0);
  27.           j_stockDataAdd(merchantData, stock_r102, 0);
  28.         }
  29.         break;
  30.       case 0x104u:
  31.         if ( !j_cRoomData::checkPassed(&RoomData, curRoomId_1C, 0) )
  32.         {
  33.           j_levelDataAdd(merchantData, level_first, 0);
  34.           j_stockDataAdd(merchantData, stock_r104, 0);
  35.         }
  36.         break;
  37.       case 0x10Du:
  38.         if ( !j_cRoomData::checkPassed(&RoomData, curRoomId_1C, 0) )
  39.         {
  40.           j_levelDataAdd(merchantData, level_null, 0);
  41.           j_stockDataAdd(merchantData, stock_r10d, 0);
  42.         }
  43.         break;
  44.       case 0x10Fu:
  45.         if ( !j_cRoomData::checkPassed(&RoomData, curRoomId_1C, 0) )
  46.         {
  47.           j_levelDataAdd(merchantData, level_null, 0);
  48.           j_stockDataAdd(merchantData, stock_r10f, 0);
  49.         }
  50.         break;
  51.       case 0x112u:
  52.         if ( !j_cRoomData::checkPassed(&RoomData, curRoomId_1C, 0) )
  53.         {
  54.           j_levelDataAdd(merchantData, level_r112, 0);
  55.           j_stockDataAdd(merchantData, stock_r112, 0);
  56.         }
  57.         break;
  58.       default:
  59.         break;
  60.     }
  61.     if ( pG->SaveWk_4F90.curRoomId_1C == 0x10E )
  62.     {
  63.       v1 = pG->SaveWk_4F90.Flags_SCENARIO_1_340[0];
  64.       if ( (v1 & SCF_ST1_NIGHT) != 0 )
  65.       {
  66.         if ( (v1 & SCF_R10E_STOCK_NIGHT) == 0 )
  67.         {
  68.           j_levelDataAdd(merchantData, level_null, 0);
  69.           j_stockDataAdd(merchantData, stock_r10e_night, 0);
  70.           pG->SaveWk_4F90.Flags_SCENARIO_1_340[0] |= SCF_R10E_STOCK_NIGHT;
  71.         }
  72.       }
  73.       else if ( (v1 & SCF_R10E_STOCK_DAY) == 0 )
  74.       {
  75.         j_levelDataAdd(merchantData, level_r10e_day, 0);
  76.         j_stockDataAdd(merchantData, stock_r10e_day, 0);
  77.         pG->SaveWk_4F90.Flags_SCENARIO_1_340[0] |= SCF_R10E_STOCK_DAY;
  78.       }
  79.     }
  80.     v2 = pG->SaveWk_4F90.Flags_SCENARIO_1_340[0];
  81.     if ( (v2 & SCF_ST1_NIGHT) != 0 && (v2 & SCF_ST1_NIGHT_LV_ADD) == 0 )
  82.     {
  83.       j_levelDataAdd(merchantData, level_r10e_day, 0);
  84.       j_levelDataAdd(merchantData, level_1st_night, 0);
  85.       pG->SaveWk_4F90.Flags_SCENARIO_1_340[0] |= SCF_ST1_NIGHT_LV_ADD;
  86.     }
  87.     v3 = pG->SaveWk_4F90.curRoomId_1C;
  88.     switch ( v3 )
  89.     {
  90.       case 0x202u:
  91.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  92.         {
  93.           j_levelDataAdd(merchantData, level_r202, 0);
  94.           goto LABEL_46;
  95.         }
  96.         break;
  97.       case 0x204u:
  98.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  99.         {
  100.           j_levelDataAdd(merchantData, level_r204, 0);
  101.           goto LABEL_46;
  102.         }
  103.         break;
  104.       case 0x20Bu:
  105.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  106.         {
  107.           j_levelDataAdd(merchantData, level_r20b, 0);
  108.           goto LABEL_46;
  109.         }
  110.         break;
  111.       case 0x20Fu:
  112.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  113.         {
  114.           j_levelDataAdd(merchantData, level_null, 0);
  115.           j_stockDataAdd(merchantData, stock_r20f, 0);
  116.         }
  117.         break;
  118.       case 0x211u:
  119.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  120.         {
  121.           j_levelDataAdd(merchantData, level_r211, 0);
  122.           goto LABEL_46;
  123.         }
  124.         break;
  125.       case 0x214u:
  126.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  127.         {
  128.           j_levelDataAdd(merchantData, level_r214, 0);
  129.           goto LABEL_46;
  130.         }
  131.         break;
  132.       case 0x220u:
  133.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  134.         {
  135.           j_levelDataAdd(merchantData, level_r220, 0);
  136.           goto LABEL_46;
  137.         }
  138.         break;
  139.       case 0x225u:
  140.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  141.         {
  142.           j_levelDataAdd(merchantData, level_r225, 0);
  143.           goto LABEL_46;
  144.         }
  145.         break;
  146.       case 0x227u:
  147.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  148.         {
  149.           j_levelDataAdd(merchantData, level_r227, 0);
  150.           goto LABEL_46;
  151.         }
  152.         break;
  153.       case 0x229u:
  154.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  155.         {
  156.           j_levelDataAdd(merchantData, level_r229, 0);
  157.           j_stockDataAdd(merchantData, stock_r229, 0);
  158.         }
  159.         break;
  160.       case 0x22Au:
  161.         if ( !j_cRoomData::checkPassed(&RoomData, v3, 0) )
  162.         {
  163.           j_levelDataAdd(merchantData, level_r22a, 0);
  164. LABEL_46:
  165.           j_stockDataAdd(merchantData, stock_2st_general, 0);
  166.         }
  167.         break;
  168.       default:
  169.         break;
  170.     }
  171.     v4 = pG->SaveWk_4F90.curRoomId_1C;
  172.     switch ( v4 )
  173.     {
  174.       case 0x301u:
  175.         if ( !j_cRoomData::checkPassed(&RoomData, v4, 0) )
  176.         {
  177.           j_levelDataAdd(merchantData, level_r301, 0);
  178.           j_stockDataAdd(merchantData, stock_r301, 0);
  179.         }
  180.         break;
  181.       case 0x305u:
  182.         if ( !j_cRoomData::checkPassed(&RoomData, v4, 0) )
  183.         {
  184.           j_levelDataAdd(merchantData, level_r305, 0);
  185.           j_stockDataAdd(merchantData, stock_r305, 0);
  186.         }
  187.         break;
  188.       case 0x30Au:
  189.       case 0x312u:
  190.       case 0x315u:
  191.       case 0x331u:
  192.         if ( !j_cRoomData::checkPassed(&RoomData, v4, 0) )
  193.         {
  194.           j_levelDataAdd(merchantData, level_null, 0);
  195.           goto LABEL_60;
  196.         }
  197.         break;
  198.       case 0x31Au:
  199.         if ( !j_cRoomData::checkPassed(&RoomData, v4, 0) )
  200.         {
  201.           j_levelDataAdd(merchantData, level_r31a, 0);
  202.           goto LABEL_60;
  203.         }
  204.         break;
  205.       case 0x31Du:
  206.         if ( !j_cRoomData::checkPassed(&RoomData, v4, 0) )
  207.         {
  208.           j_levelDataAdd(merchantData, level_r31d, 0);
  209.           goto LABEL_60;
  210.         }
  211.         break;
  212.       case 0x329u:
  213.         if ( !j_cRoomData::checkPassed(&RoomData, v4, 0) )
  214.         {
  215.           j_levelDataAdd(merchantData, level_r329, 0);
  216. LABEL_60:
  217.           j_stockDataAdd(merchantData, stock_3st_general, 0);
  218.         }
  219.         break;
  220.       default:
  221.         break;
  222.     }
  223.     if ( pG->SaveWk_4F90.game_cnt_E )
  224.     {
  225.       j_levelDataAdd(merchantData, level_ext_normal, 1u);
  226.       j_stockDataAdd(merchantData, stock_ext_normal, 1u);
  227.       if ( (pSys->Flags_EXTRA_4[0] & EXT_GET_SW500) != 0 )
  228.       {
  229.         j_levelDataAdd(merchantData, level_ext_sw500, 2u);
  230.         j_stockDataAdd(merchantData, stock_ext_sw500, 2u);
  231.       }
  232.       if ( (pSys->Flags_EXTRA_4[0] & EXT_GET_TOMPSON) != 0 )
  233.         j_stockDataAdd(merchantData, stock_ext_tompson, 2u);
  234.       if ( (pSys->Flags_EXTRA_4[0] & EXT_GET_LASER) != 0 )
  235.         j_stockDataAdd(merchantData, stock_ext_laser, 2u);
  236.     }
  237.   }
  238. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement