I'll be super busy this coming week and maybe even the next one. I'll still be working on the API but there's not much I could share about what I'm doing since it's all utility for the API to work. I think I might share my source code soon and people who want to play with it can start doing so, though it's very much just a 'toy' at the moment. I won't consider the API interesting until I can find an object list in virtual memory, or rather a way to manipulate individual guest and animal attributes, among other things like events like Khaydar would like.
Before I release the code, I need to implement some basic features:
Mod loading. This will let people write their own extensions to the API so that they can create their own mods. Code has already been contributed by a college friend but I need to port it to C++ since he only knows C#.
Restructure the command console code. It's very messy right now.
Add 20 new commands to command console. It's no longer just a budget API.
Make sure my game loop function doesn't cause too many issues performance-wise. I haven't had many problems lately but then again I'm running a Radeon 6800 XT and Ryzen 7 5700X, so I can only hope my Windows XP virtual machine is actually reflective of what an older machine is capable of running. It's still just a temporary implementation until I can hook onto the real loop or message queue.
In addition to ZooBudget which has been explored to death in this entire thread, here are some new game resources that should be accessible soon in the API:
NumAnimals
NumGuests
NumExhibits
NetIncome
ZooValue
ZooRating
NumAngryGuests
NumTiredGuests
NumHungryGuests
NumThirstyGuests
NumGuestsNeedRestrm
NumGuestsInFilter
AdmissionsIncomeByMonth[12]
ConcessionsByMonth[12]
RecyclingBenefitByMonth[12]
IncomeExpenseTotalsByMonths[12]
ZooRatingOverTime[12]
ZooRatingByMonth[12]
AnimalPurchaseCostByMonth[12]
ConstructionCostByMonth[12]
For anyone who has been following the code talk, these are all part of the ZTGameMgr class, so it seems that the instantiated form of this class is where most of the save file game state is transferred to in virtual memory.
Something I found kind of cool is that the Zoo Status panel in the game only shows you the last four months-worth of budget information. With the API you will be able to see all 12 months in the console if you wanted to.
Thanks to @finnethen and @Gymnasiast for pooling their knowledge, we've been able to make quite a bit of progress reversing a few of areas of the game the past few weeks. Later this summer we're looking to add another to the project who has some malware analysis experience, so that will be fun. (This just means he chose reverse engineering as his career path)
I'll also see you guys in my [normal] project's thread soon. I've had to clear up some time to get that going again but my fennec fox is not abandoned lol.
🥷Ninja Edit 06/21/23: For anyone following: I renamed the project title from "Goosifer's ZT EMU" to what it says now. The project team has grown since I started this API and it's no longer just mine alone. :P I'll shout our newest members on the next update whenever that is.