Closed kdm2k6 closed 4 years ago
This seems like a LW issue? What does this have to do with the CHL?
The hook would need to be in the CHL unless we wanted to create compatibility issues by having two separate highlanders. Granted, I've been out of the loop for a while, but my last understanding was that LWOTC was going to be using the CHL.
The above does not mention anything about hooks/events. It basically says "xyz is broken with LW" a couple of times
Original issue on the LW issue page: https://github.com/long-war-2/lwotc/issues/1015#issue-619814444
Notable part that seems to have been omitted from this issue: Please add a hook within XComGameState_WorldRegion's GetStaticMesh() and GetMeshScale() so I can modify what is returned.
I realize it's kinda weird that I'm fighting his battle for him, but I offered to implement the hook (or, actually, hooks, since there would be two) because I noticed the LW issue on the discord and figured I'd help out.
Please add a hook within XComGameState_WorldRegion's GetStaticMesh() and GetMeshScale() so I can modify what is returned.
That makes more sense
Problem : When using a controller, each contacted map region, on the strategy map, is represented by a series of 2D buttons as well as a 3D mesh. Mouse & keyboard users see the 2D buttons, but do not see the 3D mesh; this is normal WotC code. The problem is that these 3D meshes were designed for WotC and not Long War; hence, there will be certain situations in which a 3D mesh simply does not show for a given region. This looks especially weird since, for controller users, a selection icon appears around this non-existant 3D mesh.
Additional Information 1.] When using a controller, each region map item has a 3D mesh associated with it; the 3D mesh information is stored within a UIStrategyMapItem3D object. It is the call : GeoscapeEntity.GetStaticMesh() which determines which 3D mesh should be attached to the UIStrategyMapItem3D object and shown; in my case, I am worried about XComGameState_WorldRegion, which is based off of XComGameState_GeoscapeEntity.
XComGameState_WorldRegion --> GetStaticMesh(), itself, returns a StaticMesh like : StaticMesh'UI_3D.Overwold_Final.RadioTower'. The return value is based upon a number of factors including whether a controller is active, and the current contact level of the region (can it be contacted, is it being contacted, can an outpost be created, is an outpost being created, has an outpost been created).
The problem in Long War is that it does not account for the situation in which a radio relay (outpost) has been installed. Rather than return StaticMesh'UI_3D.Overwold_Final.RadioTower', it returns none, as in nothing. I would like to modify the function so that it returns the correct static mesh, depending upon the circumstance.
2.] There is a similar issue with XComGameState_WorldRegion --> GetMeshScale(), which returns a vector that scales the 3D mesh accordingly. The problem in Long War is that, when a radio relay has been installed, the vector is never set, so you only get the default vector value. Additionally, currently, there is no way to modify the size of the 3D mesh if desired.
Thanks