diff options
Diffstat (limited to 'src/koopatlas/shop.cpp')
-rw-r--r-- | src/koopatlas/shop.cpp | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/src/koopatlas/shop.cpp b/src/koopatlas/shop.cpp index 025a7d9..63d23e2 100644 --- a/src/koopatlas/shop.cpp +++ b/src/koopatlas/shop.cpp @@ -17,7 +17,6 @@ void dWMShop_c::ShopModel_c::setupItem(float x, float y, ItemTypes type) { { "I_star", "g3d/I_star.brres", "I_star", "wait2" }, { "I_hammer", "g3d/I_fireflower.brres", "I_fireflower", "wait2" }, { "I_kinoko_bundle","g3d/I_life_kinoko.brres", "I_life_kinoko", "wait2" }, - { "obj_coin", "g3d/obj_coin.brres", "obj_coin", "wait2" } }; this->x = x; @@ -33,12 +32,7 @@ void dWMShop_c::ShopModel_c::setupItem(float x, float y, ItemTypes type) { nw4r::g3d::ResMdl mdlRes = res.GetResMdl(Produce[id][2]); model.setup(mdlRes, &allocator, 0x224, 1, 0); - if (type == COINS) { - SetupTextures_MapObj(&model, 1); - this->y += 20.0f; - scaleFactor = 2.7f; - } else - SetupTextures_Item(&model, 1); + SetupTextures_Item(&model, 1); nw4r::g3d::ResAnmChr anmChr = res.GetResAnmChr(Produce[id][3]); animation.setup(mdlRes, anmChr, &allocator, 0); @@ -194,6 +188,11 @@ int dWMShop_c::onCreate() { name[8] = crap[i*2]; name[9] = crap[i*2+1]; BtnRight[i] = layout.findPictureByName(name); + + strcpy(name, "BtnXX"); + name[3] = crap[i*2]; + name[4] = crap[i*2+1]; + Buttons[i] = layout.findPaneByName(name); } leftCol.setTexMap(BtnLeft[0]->material->texMaps); @@ -206,6 +205,8 @@ int dWMShop_c::onCreate() { rightCol.applyAlso(BtnRight[i]->material->texMaps); } + Buttons[5]->size.x = 252.0f; // don't feel like editing rlyt + layoutLoaded = true; } @@ -301,7 +302,9 @@ void dWMShop_c::executeState_ButtonActivateWait() { if (!layout.isAnyAnimOn()) state.setState(&StateID_Wait); } -void dWMShop_c::endState_ButtonActivateWait() { OSReport("Wait"); } +void dWMShop_c::endState_ButtonActivateWait() { + UpdateSelectCursor(Buttons[0], 0, false); +} // Wait void dWMShop_c::beginState_Wait() { timer = 1; MapSoundPlayer(SoundRelatedClass, SE_OBJ_CLOUD_BLOCK_TO_JUGEM, 1); } @@ -352,6 +355,7 @@ void dWMShop_c::executeState_Wait() { layout.enableNonLoopAnim(DEACTIVATE_BUTTON+selected); layout.enableNonLoopAnim(ACTIVATE_BUTTON+newSelection); + UpdateSelectCursor(Buttons[newSelection], 0, false); selected = newSelection; if (newSelection <= 3) @@ -368,6 +372,8 @@ void dWMShop_c::beginState_HideWait() { timer = 26; MapSoundPlayer(SoundRelatedClass, SE_OBJ_CS_KINOHOUSE_DISAPP, 1); + + HideSelectCursor(SelectCursorPointer, 0); } void dWMShop_c::executeState_HideWait() { if (timer > 0) { @@ -394,7 +400,6 @@ void dWMShop_c::endState_HideWait() { // 6 = Starman - 2 // 7 = Hammer - 3 // 8 = 1-ups - 2 -// 9 = Coins - 1 // // Format: 1coin, 1coin, 2coins, 3coins, 5coins[3] (Value 6-9), 8coins[5] (Value 10-15) // @@ -403,37 +408,37 @@ void dWMShop_c::endState_HideWait() { const dWMShop_c::ItemTypes dWMShop_c::Inventory[10][12] = { { // Yoshi's Island - COINS, MUSHROOM, FIRE_FLOWER, PROPELLER, + MUSHROOM, FIRE_FLOWER, ICE_FLOWER, PROPELLER, FIRE_FLOWER, ICE_FLOWER, FIRE_FLOWER, MUSHROOM, MUSHROOM, ONE_UP, PROPELLER, PROPELLER }, { // Desert - COINS, MUSHROOM, FIRE_FLOWER, PROPELLER, + MUSHROOM, FIRE_FLOWER, ICE_FLOWER, PROPELLER, FIRE_FLOWER, STARMAN, FIRE_FLOWER, MUSHROOM, FIRE_FLOWER, FIRE_FLOWER, PROPELLER, PROPELLER }, { // Mountain - COINS, MUSHROOM, MINI_SHROOM, PROPELLER, + MUSHROOM, FIRE_FLOWER, MINI_SHROOM, PROPELLER, MUSHROOM, MINI_SHROOM, PROPELLER, MUSHROOM, MINI_SHROOM, PROPELLER, PROPELLER, HAMMER }, { // Japan - COINS, MUSHROOM, ONE_UP, HAMMER, + MUSHROOM, FIRE_FLOWER, ONE_UP, HAMMER, ONE_UP, ONE_UP, ONE_UP, PROPELLER, ICE_FLOWER, ONE_UP, FIRE_FLOWER, PROPELLER }, { // FreezeFlame - COINS, MUSHROOM, ICE_FLOWER, PENGUIN, + MUSHROOM, FIRE_FLOWER, ICE_FLOWER, PENGUIN, ICE_FLOWER, PENGUIN, ICE_FLOWER, ICE_FLOWER, PENGUIN, PENGUIN, PENGUIN, ICE_FLOWER }, { // Ghost - COINS, MUSHROOM, STARMAN, PROPELLER, + MUSHROOM, FIRE_FLOWER, STARMAN, PROPELLER, MINI_SHROOM, PROPELLER, MINI_SHROOM, - PROPELLER, PROPELLER, COINS, PROPELLER, PROPELLER + PROPELLER, PROPELLER, MUSHROOM, PROPELLER, PROPELLER }, { // Space - COINS, MUSHROOM, STARMAN, HAMMER, + MUSHROOM, STARMAN, ONE_UP, HAMMER, STARMAN, STARMAN, STARMAN, HAMMER, HAMMER, ONE_UP, HAMMER, HAMMER }, @@ -443,12 +448,12 @@ const dWMShop_c::ItemTypes dWMShop_c::Inventory[10][12] = { PROPELLER, HAMMER, PROPELLER, HAMMER, PROPELLER }, { // Unknown - COINS, MUSHROOM, FIRE_FLOWER, PENGUIN, + MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM, MUSHROOM }, { // Goldwood - MUSHROOM, ONE_UP, FIRE_FLOWER, MINI_SHROOM, + MUSHROOM, FIRE_FLOWER, ONE_UP, PENGUIN, FIRE_FLOWER, PROPELLER, FIRE_FLOWER, FIRE_FLOWER, FIRE_FLOWER, STARMAN, FIRE_FLOWER, FIRE_FLOWER } @@ -528,7 +533,7 @@ void dWMShop_c::loadInfo() { void dWMShop_c::buyItem(int item) { static int itemDefs[6][3] = { // Cost, Start Index, Count - {1, 0, 1}, {1, 1, 1}, {2, 2, 1}, {3, 3, 1}, + {1, 0, 1}, {2, 1, 1}, {2, 2, 1}, {3, 3, 1}, {5, 4, 3}, {8, 7, 5} }; @@ -542,7 +547,6 @@ void dWMShop_c::buyItem(int item) { MapSoundPlayer(SoundRelatedClass, SE_SYS_DECIDE, 1); - SaveFile *file = GetSaveFile(); SaveBlock *block = file->GetBlock(file->header.current_file); @@ -558,32 +562,28 @@ void dWMShop_c::buyItem(int item) { appliedItems[(int)Inventory[shopKind][invStartIndex]]++; // TODO: Make this work with hammers - for (int i = 0; i < 7; i++) { + for (int i = 0; i < 8; i++) { block->powerups_available[i] += appliedItems[i]; if (block->powerups_available[i] > 99) block->powerups_available[i] = 99; + + dScKoopatlas_c::instance->stockItem->counts[i] = block->powerups_available[i]; } - // Apply coins and lives to everyone + // Apply lives to everyone for (int i = 0; i < 4; i++) { - block->player_coins[i] += (appliedItems[(int)COINS] * 50); - - while (block->player_coins[i] >= 100) { - block->player_coins[i] -= 100; - block->player_lives[i]++; - } - - block->player_lives[i] += appliedItems[(int)ONE_UP]; - if (block->player_lives[i] > 99) - block->player_lives[i] = 99; + Player_Lives[i] += appliedItems[(int)ONE_UP]; + if (Player_Lives[i] > 99) + Player_Lives[i] = 99; } + if (appliedItems[(int)ONE_UP] > 0) + MapSoundPlayer(SoundRelatedClass, SE_SYS_100COIN_ONE_UP, 1); + // load the coin count int scCount = getUnspentStarCoinCount(); WriteNumberToTextBox(&scCount, CoinCount, false); WriteNumberToTextBox(&scCount, CoinCountShadow, false); - - state.setState(&StateID_HideWait); } |