| - Elemental 1Z Change Log - *********************************************** ** New Features ** *********************************************** - Economy Overhaul - Overview: The major resources in the game have been switched over to being GLOBAL (per- player opposed to per-city). Building materials, metal, and crystal are added, per-turn, into their pool overall pool, while food is stored as a players 'net-food', whch gets spent on housing as the player wishes to expand it's cities. + Improvements now use ConstructionResourceCost modifiers for their up front costs when placed, and refunds when destroyed + Started cleaning up old code for gathering resources for constructing improvements + Added support for improvements having a <PerTurn>0</PerTurn> resource game modifier that they apply, but only for global resources (for now). They will apply it when construction is completed, and apply the reverse when the improvement is destroyed. + Fixed bug where one-time resource modifiers would be used for per-turn city resource calculations after the resource data had been refreshed more than once + Started making construction cost refunds on improvements more flexible, so some costs can be refunded even if the building isn't under construction + added entries in the global pool area for population and for food. + Entries with a value of 0 are not added. + global pool listgrid is resized based on total entry width, and then the global pool area is sized just big enough to fit that listgrid and the buttons + One-time resource modifiers now displayed in a city's resource list + Added food construction costs to the housing improvements that upgrade from hut + Switched food to be a non-stored global resource acted on by per-turn food modifiers in improvements again + This way, food can be acted on by trade and ability modifiers + Added ability for player to refresh their non-stored resource values in the middle of a turn, and called for a refresh at various times when improvements are being placed, destroyed, or finishing construction, to ensure it stays up to date + Fixed some bugs where the global resource amounts for non-stored resources and the global pool UI wouldn't update in certain cases, like when housing is upgraded mid-turn by choosing a tech breakthrough + Player values for per-turn resources should be up to date whenever they are asked for + Removed trade through capital city bonus for the capital city itself, though the resources produced by the capital city are still taken into account for other cities connected to it through a road + Fixed bug where pioneer improvements would be placed in the bottom left corner of the tile you built them in + Fixed bug where the graphics of loaded improvements under construction would not show up on the map at all + If cities' net resource production is less than or equal to 0, it will still be displayed in the city details screen, so you can tell if your city is actually being a drain on some global resource + Added pioneer improvements to the kingdom details screen + Global resource pool UI now shows the net per-turn production of a given resource when you mouse over its entry + Added calculation of per-turn amounts of each global resource alongside the calculations that were already being done for non-stored resources, though if the player already had and was using a different per-turn calculation function, I just call that instead to set the per-turn value + Fixed bug where global resources spent training a unit weren't reflected immediately in the UI + AddUnitBeingTrained refreshes global resource display if any global resources are spent + Added net tooltip for mousing over global resource pool entries+ Added m_apPerturnResources (and saving/loading of it) and m_csPerTurnResources + Added GetPerTurnResourceProduction + RecalculateDirtyPerTurnResources now calculates a per-turn value for all resource, not just non-stored ones, but uses existing net calculation function if they already exist (like for gold and research points) - Pioneer Units - Overview: Players can now build 'Pioneers', who can place improvements on the major resources to feed into the global pool. + 'BuildOnResource' Unit Action - when an improvement is done, it will not exude ZOC for the player - in basic mode, completed improvement icons will show up no matter what zoom level - action will build the best possible improvement on the resource the unit is standing on - improvmeent takes the appropriate number of turns to build - hide resource being tapped - for testing, readded the action for all units...will remove next - improvement will take the required resources when built - Update the main ui when resoruces are used - if a trained unit builds: destroy that unit - allowed pioneers to tap shards (needed a special IF cause for resources that were of a shard type) - tweak pioneer kit to cost 50 gold and 5 materials + Resources from pioneer improvements are now taken into account in the player's global pool of stored resources, and their calculations of non-stored resources per turn + Fixed asserts when trying to select a pioneer improvement and broken info cards when mousing over them, the info cards now work completely and selecting a pioneer improvement shows the generic context used by goodie huts and such, though it's lacking in anything but a name right now + Fixed bug where calling DeductConstructionCosts on a pioneer improvement with a non-stored construction resource cost would have kept the player's pool from updating, actual deduction code should take care of it now + Fixed some leaked refs in the generic context wnd + Added saving/loading of a player's pioneer improvements + Added info to pioneer improvement generic context when selected about turns to finish building and resources produced + Resources should store wether or not they can be built upon without a city + All 'BonusTile' resources should be off-limits to pioneer units + remove the weird mine that gets build by pioneers if Mining has not been researched (Mine_Improvement)...needed to remove MINING.XML file + Pioneers are a default unit for all factions, like Peasants + Added Kingdom_Pioneer unit type that's available to all factions by default, has a pioneer's kit equipped - Minimap - Overview: A resizable and movable minimap is now available for the player to utilize. +Minimap can be dragged +Minimap can be clicked to move the camera +Minimap can be zoomed in on to move the camera AND zoom in + Fixed dragging on the minimap. Dragging on the top bar now moves the whole map, dragging on the minimap itself moves the camera as expected. + Blended in a parchment texture to the minimap so it looks more aesthetically pleasing. + The minimap updates when fog of war tiles get revealed now. + The minimap can now be hidden and unhidden using the hide arrow in the upper-right of the minimap and the main window. + The minimap can now be docked in the upper-right part of the main window by dragging it there - Bonus Tiles - Overview: Various bonus resources (that require an adjacent city) will improve different aspects of any city that claims them. + Senic View (Prestige Bonus) + Wild Game (Food Bonus) + Oasis (Food Bonus) + Lost Library (Research Bonus) + Gold Deposit (Income Bonus) + Rematched Bonus Types for Claimed Tile Improvements and Special Resources + Special Tiles now have proper Medallions attached to them - Event List Started - Overview: As events occur, small pips will appear on the right hand side of the screen and will disappear after 2 turns (still needs polish). + Make, clean up MainGameWnd_EventList.cpp for all event list code + make CMainGameEventEntryWnd class + hook up to ReportItems...when a report item is added, add an event entry as well + entries time out after 2 turns + right clicking removes entries from the list *********************************************** ** Fixes ** *********************************************** - Units - + Fixed bug where caravans would move to the next tile between turns, then drift to the bottom-left corner of the tile - AI - + fixed some issues with AI not building cities, I had them trying to use AUTO_EXPLORE when they can't find anything else to do, so they can clear some FOW, but it doesnt' actually work for AI, so I just wrote my own wandering code. + AI-controlled sovereigns now get sent to their closest city if they are defeated in battle. If they have no cities left, they are killed, and their faction is destroyed. - Battles - + Fixed a divide-by-zero crash in the battle engine - Cities - + Fixed improvements appearing to be buildable on resource hoards when the player has no tiles. + Fixed tooltips to now show in red the reason the player cannot build an improvement. + Added many more icons to tooltips to make the benefits and costs of each improvement more explicit. + Implemented more resource flags to show improvement costs and benefits in the citybuilding menu. The remaining improvements that do not have benefits showing do not have benefits in their XML yet. + Improved the citybuilding screen's "Cost" and "Provides" entries. - All entries that can be XML driven are. Entries that cannot at least have detailed tooltips. - If an entry does not have an icon, the space for that icon is used for text instead. - The spacing between entries has been tweaked so that even the longest entry list will not go outside the space provided. + Fixed placing improvements across rivers, the player can no longer do so. + You may now demolish a four-tile improvement by clicking anywhere on it. + Fixed some four-tile improvements being slightly offset after building, causing them to overlap other improvements. + Suppressed the notification of auto-upgraded improvements building so the player doesn't get 20 "Construction completed on our house" notifications when their city levels up. + Fixed Jakob's broken city walls case. The size of the buffer was not getting calculated correctly, leading it to not have enough room to store the improvements before building the walls. + Fixed bug where improvements would still attempt to gather resources after placing them and pressing turn, causing them to take longer than advertised to build - UI - + Right clicking the center medallion will now focus the camera on the selected unit + SHIFT-S will not select the sovereign, and focus the camera on him + Change the calculation of Might to Power Rating and changed it to use Brad’s formula from the Beta 1-Z document. + Train unit screen lists the resource requirements and population requirements of the highlighted unit, coloring a requirement red if it is not satisfied by the city and therefore keeping the unit from being trainable + Costs for items now show up in a separate string that's easier to see, hidden if the item doesn't cost anything (like skin or hair) + Player can now select more than one stationed unit. + When multiple stationed units are selected they can be unstationed as one. + Put in strings for improvements with non-standard bonuses so that they can be customized yet data-driven + Added strings for tooltips when mousing over the new per-turn points displays for research and spell points in the main UI + Fixed bug where changing the skin color in the create sovereign screen and customize faction screen would not update the skin color in the preview unit scene view graphic + Spell points and research points per-turn displayed near the buttons, says it's a per-turn value on mouseover + Fixed issue where unit scene view windows were "blowing out" the lighting on characters - Gameplay - + Updated Improvement Quantity Limits + Watchtower no longer costs materials to build + City Hubs store 20 Pop + Huts/Houses now cost 4 food + Market no longer costs materials to build + Improved starting gold to 500 + Created "the Dark Concoction" Quest + Updated various improvement tile designs + Removed K_Apartment from the repository + Updated Quest "Strange Noises" trigger chance + Updated Wild Wheat Production Value to 1.0 + New Medallion png's for the special tiles, claimed tile improvements, and work camp + Resource gathering improvements now ignore duplicate imp limit + Only one wall improvement is allowed per city + Quarries now reduce build times + Resources and special tiles now have descriptions for tooltips + Created Granary Improvement to boost food production + Checked in a number of new medallions for the new bonus tiles + Updated Granary improvement to only allow one per city + Created Equipment Cache Goody Hut that Rewards Equipment + Items/Weapons/Accessories no longer give more than .25 Combat Speed + Meditative talent now produces 1 SP per turn instead of 4 + Armory Improvement now decreases troop training time instead of multiplying IronOre resource + Created List of Champion Names + goodie huts that do not disappear from the map after being cleared now have their icons set to semi-transparent to differentiate them from unvisited goodie huts. + marrages should no longer happen randomly...have to go on quests to get proposals to prompt + City Improvement Limits adjusted + Removed Siege_Workshop.xml, added Siege_Foundry.xml as replacement + Updated Materials output for Lumbermill + Created Workshop Improvement to generate Materials + Added IgnoreDuplicateImpLimit tag to Garden + Outposts now store 20 Pop + Can now only build 1 Command Post per City + Market no longer costs materials to build + Updated Tax Office and Arcane Society improvement tile designs + Added a limit to the maximum number of active quests a player can have at any one time. The limit is defined in ElementalDefs.xml as MaxActiveQuests, and is currently set to 3. When the quest limit is reached, no new quests will be presented to the player, and they will not be able to acquire new ones by visiting quest locations until they complete some of their active quests. Visiting a quest location while at the quest limit will not clear the quest location. + A number of quest locations are spawned for each player in the turn after they get their first city, to give them access to quests early on. The number of quest locations that get spawned is set via NumStartingQuestLocations in ElementalDefs.xml, and is currently set to 1. + Upon completing a quest spawned from a quest location, the quest location is removed from the map to reduce clutter. - Memory Leaks - + MainStatsSubWnd.cpp - fixed leaked ref for population resource in FillWithCityStats() + KingdomReportSubWnd.cpp - in AddTextForPlayer(), fixed leaked refs in a while loop of resources and some more in that same function but further down in a forloop of resources + ItemModTypeManager .h/.cpp - added function VOID ClearItemModTypes() which is called from the dtor() + ImprovementType.cpp - fixed a leaked ref in some commented out code within GetTurnsToConstructInCity(), in case it gets uncommented + ImprovementConstruction.cpp - in ConstructionCostHelper(), fixed leaked refs in a for loop of resources + Improvement.cpp - in DetermineImprovementContiguity(), fixed leaked refs when leaving the function early + GameItemType.cpp - in UnloadGameItemTypes(), cleared the vector after safe releasing its contents + FlavorTextManager.cpp - in dtr(), now calling Clear() to clean things up + DungeonType.cpp - in UnloadDungeonTypes, now clearing the vector after safe releasing the contents + CityTradeInfo.cpp - in RecalculateAllTradeInfo(), fixed leaked refs to resource types in a for loop and calling FindResourceTypeByTypeName() each time - in CheckTradeRoadConnection(), fixed leaked refs to resoruce types while iterating and calling FindResourceTypeByTypeName() each time + CityResourceData.cpp - in Load(), before setting value of m_pResourceType to a new value, fixed leak ref by calling SAFE_RELASE on it so it will release any previous value + Fixed a number of memory leaks in CMainMapViewWindow::CreateLODGroundcover( ) (multiple return cases where objects were not being released, though this function is not currently being called, as the LOD ground cover is disabled), and CWorld::IsTileEmpty( ) (wasn’t releasing the unit). - Engine - + Goodie huts can now be assigned a preferred terrain, which is the only terrain it will be randomly placed on. + Hooked up the ground cover spinner in the options window to the new world prop ground cover system. + Fixed an issue with the ground cover spinner that was preventing it from saving your setting. + Ground cover props now get placed when terrain is modified in the map editor, to give a better idea of how things will look in the main game. + Changed the ground cover prop density so that on the highest level every unoccupied tile will get a piece of ground cover. + Fixed bug where restarting the game from within a game (in basic mode) caused the main map not to render + Implemented new CAnimatedLeafNode class to render a single animated tree leaf - Use CSceneNodeUtil::CreateAnimatedLeafNode to create the node - This gets us one step closer to forests using tile designs + Fixed issue that was preventing the terrain and water from rendering when starting a new game up after one has already been created. + CMapData is now reference-counted, and gets passed along to terrain graphics objects (currently CTerrainGraphic and CCliffGraphic, and will be expanded to include CWaterGraphic, CRoadGraphic and CRiverGraphic) that need to access information about the map. These objects will now use their pointer to CMapData to access the required information rather than the access functions in Elemental.cpp or CWorld. + Fixed some crashes that would occur when attempting to exit the game via the main menu after having used the map editor. + Fixed problem with ground cover world props that was preventing goodie huts and resources from being placed if the ground cover spinner was set to the highest level. + Changed rendering order in main map and map editor so props and characters render under the water + Re-wrote CDecalGraphic’s vertex and index buffer code to be much more efficient, in terms of both memory footprint and processing time (it was allocating four times as many vertices as were needed). |