Vinifera-Developers / Vinifera

Vinifera is a C&C: Tiberian Sun engine extension implementing new logics and fixing bugs.
GNU General Public License v3.0
46 stars 10 forks source link

[Enhancement] Make the game not create a new radar event when a unit is ready or a building is placed #113

Open Rampastring opened 3 years ago

Rampastring commented 3 years ago

Description:

The game creates a radar event whenever a unit is ready or you place down a building. This is a major annoyance with vanilla TS radar events, as if your units are attacked while you're also producing things, a newly produced unit's "unit ready" event will override the event for your objects taking damage. Typically units are produced from your base, so if you want to hop in to your base to check the newly produced unit, you can just press the H key.

If someone really wants to have radar events for new objects, the behaviour could be made configurable.

Additional Files:

CnCNet ts-patches code: https://github.com/CnCNet/ts-patches/blob/master/src/radar_event_hacks.asm

CCHyper commented 3 years ago

Maybe the best solution for this would be the prioritise radar events better. ie, make attack events override standard events.

I think removing it outright is not ideal, as we need to retain the original behaviour.

Rampastring commented 3 years ago

I'd argue that this event is for the most part useless as you can usually press H for moving the camera to your base to see the factory (or if it's far away from your CY, you can create a bookmark instead), and removing it wouldn't cause much harm. I also haven't heard of any TS players complaining about the CnCNet TS behaviour. I can still see your angle though.

tomsons26 commented 3 years ago

Well for some reason this 0080A0E8 is here 004BED18 0080A0E8 is the last RadarEvent cell, thats where this comes from. YR doesn't register the cell on factory completions.

YR has a very simple change replacing this CellStruct with a CellStruct[8] which it then circles though. It has minor code changes to cycle though the last 8 events. While i'd say this registration shouldn't happens for this kind of "event", a compromise could be upgrading the system to be able to cycle though the last 8 cells.