Jump to content
SimRabbit123

Sub-menus are now possible!!!

10 posts in this topic Last Reply

Highlighted Posts

Posted:
Last Online:  
 

I think to much, that's my problem 3.gif.

Deep down I have always liked to believe that it is possible, personally going to extreme lengths to even do so, but hadn't found a way (well, not that I hadn't, just hadn't found a way to get it to work). Think I'll wait though before I comment on it 2.gif.

Share this post


Link to post
Share on other sites
Posted:
Last Online:  
 

Wow, thats excellent news!

-The only question is if this works, will we still have to press TAB all the time to select a puzzle piece or can we just select it from the sub-menu? (EX: NAM elevated road puzzle pieces)

Share this post


Link to post
Share on other sites
Posted:
Last Online:  
 

17.gifEA will shut them down.17.gif

Nah...This is remarkable. Hope it works...and hope to god we can create our own menu's.2.gif


Gsig.jpg

"With a purposeful grimace and a terrible sound he pulls the spitting high-tension wires down..."

Share this post


Link to post
Share on other sites
Posted:
Last Online: A long, long time ago... 
 

i couldnt see the pics, do i have to be registered to their site. im using firefox. this would be very helpful for my landmarks menu lol

Share this post


Link to post
Share on other sites
Posted:
Last Online: A long, long time ago... 
 

I am studying actually the assembler code of the game to find out how to add new standard IDs - meaning to find out if there are unused submenukeys and/or occupant groups that are handled by menu classes (button IDs in the UIs) that are also unknown.

Well... there isn't any hidden occupant group or submenukey but two empty CLSIDs for new tertiary menus in the traffic menus.

I found also out what changes on the binary are necessary to implement new menus. But I don't know how to make use of it.

Does any body know how to strip out symbols of an EXE and link them to a DLL? That makes enhancing the assembler code quite easier.

Share this post


Link to post
Share on other sites
Posted:
Last Online: A long, long time ago... 
 

same posted on SC4D... I will explain a little bit about the submenu mechanisms in the game. At first, there are three menu levels:

primary menus: first menu instance (f.e. godmode, mayor and mysim)

secondary menus: submenus right beside the primaries (buildings, terrain tools)

tertiary menus: everything that contains tools or buildings as scrollable lists of icons

Implemented in the game is one additional secondary menu called fences menu. I have not figured out yet if it is possible to make use of it. But to get more space for buildings, the tertiary menu algotitm is more interesting.

Bound to the button click event of any UI button ID, the following function is called:

cSC4View3DWin::HandleButtonActivated(cIGZWin*, cGZMessage&)
The first parameter contains the address of the parent game window and the second a structure of delivered parameters (here there only may interest us the CLSID set in the UI the button links to). Because UI button IDs have very different functions from submenus over game speed to sound settings, the function checks the function this button belongs to. It forces different function calls referenced by the button ID. If a tertiary menu should be opened that only can contain buildings (identified by an occupant group), the function
cSC4View3DWin::CreateBuildingMenu(unsigned long, std::set,std::allocator > \
const&, std::set, \
std::allocator > const&, unsigned long, long)
is called and anyhow, the necessary parameters are either transmitted staticly or as result of a function call. For example the valid occupant groups for that menu are delivered here. This function identifies additional information from the building exemplars and finally calls
cSC4View3DWin::InvokeTertiaryMenu(unsigned long, cIGZWin*, \
unsigned long, cISC4WinCatalogView*, unsigned long, cSC4View3DWin::CatalogState*)
The final function illustrates (paints) the menu widget. For special menus where tools are allowed (networks, zones or other functions), the button handling function calls a META function first. For example, there are:
cSC4View3DWin::DoTransportMenu(cIGZWin*, cGZMessage&)
cSC4View3DWin::DoZoningMenu(cIGZWin*, cGZMessage&)
These functions assign SubMenuKeys for tool exemplars (used in non-building item exemplars to identify the menu to be placed in...) to the button-IDs and link buttons in the secondary menus that directly call a game function instead of a item list to their destination functions. These functions do some extra steps for these special menus and call at last CreateBuildingMenu too.

Well... theoretically it is easy to understand what extra assembler instructions in the EXE make as many submenus as we want possible. The bad side is that I have no idea how to replace existing objects with enhanced versions (or how to knock out a single symbol into a working DLL).

Share this post


Link to post
Share on other sites

Sign In or register to comment...

To comment in reply, you must be a community member

Sign In  

Already have an account? Sign in here.

Sign In Now

Create an Account  

Sign up to join our friendly community. It's easy!  

Register a New Account


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Thank You for the Continued Support!

Simtropolis depends on donations to fund site maintenance costs.
Without your support, we just would not be in our 24th year online!  You really help make this a great community. *:thumb:

But we still need your support to stay online. If you're able to, please consider a donation to help us stay up and running. This helps sustain a platform where we can share our community creations for years to come.

Make a Donation, Get a Gift!

Expand your city with the best from the Simtropolis Exchange.
Make a Donation and get one or all three discs today!

STEX Collections

By way of a "Thank You" gift, we'd like to send you our STEX Collector's DVD. It's some of the best buildings, lots, maps and mods collected for you over the years. Check out the STEX Collections for more info.

Each donation helps keep Simtropolis online, open and free!

Thank you for reading and enjoy the site!

More About STEX Collections