mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-26 14:56:39 +00:00 
			
		
		
		
	add/remove gold from the player at the end of the transaction.
This commit is contained in:
		
							parent
							
								
									c004f5d570
								
							
						
					
					
						commit
						c30b9e4bb9
					
				
					 1 changed files with 26 additions and 0 deletions
				
			
		|  | @ -5,6 +5,7 @@ | ||||||
| #include "../mwbase/environment.hpp" | #include "../mwbase/environment.hpp" | ||||||
| #include "../mwworld/world.hpp" | #include "../mwworld/world.hpp" | ||||||
| #include "../mwworld/inventorystore.hpp" | #include "../mwworld/inventorystore.hpp" | ||||||
|  | #include "../mwworld/manualref.hpp" | ||||||
| 
 | 
 | ||||||
| #include "window_manager.hpp" | #include "window_manager.hpp" | ||||||
| #include "inventorywindow.hpp" | #include "inventorywindow.hpp" | ||||||
|  | @ -206,6 +207,31 @@ namespace MWGui | ||||||
|         transferBoughtItems(); |         transferBoughtItems(); | ||||||
|         mWindowManager.getInventoryWindow()->transferBoughtItems(); |         mWindowManager.getInventoryWindow()->transferBoughtItems(); | ||||||
| 
 | 
 | ||||||
|  |         // add or remove gold from the player.
 | ||||||
|  |         bool goldFound = false; | ||||||
|  |         MWWorld::Ptr gold; | ||||||
|  |         MWWorld::ContainerStore& playerStore = mWindowManager.getInventoryWindow()->getContainerStore(); | ||||||
|  |         for (MWWorld::ContainerStoreIterator it = playerStore.begin(); | ||||||
|  |                 it != playerStore.end(); ++it) | ||||||
|  |         { | ||||||
|  |             if (MWWorld::Class::get(*it).getName(*it) == MWBase::Environment::get().getWorld()->getStore().gameSettings.search("sGold")->str) | ||||||
|  |             { | ||||||
|  |                 goldFound = true; | ||||||
|  |                 gold = *it; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if (goldFound) | ||||||
|  |         { | ||||||
|  |             gold.getRefData().setCount(gold.getRefData().getCount() + mCurrentBalance); | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |         { | ||||||
|  |             assert(mCurrentBalance > 0); | ||||||
|  |             MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), "Gold_001"); | ||||||
|  |             ref.getPtr().getRefData().setCount(mCurrentBalance); | ||||||
|  |             playerStore.add(ref.getPtr()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         mWindowManager.setGuiMode(GM_Game); |         mWindowManager.setGuiMode(GM_Game); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue