Higus wrote:Got some pretty good camera mod results going:
https://www.youtube.com/watch?v=d3ZWM31fRl8
Download:
http://www.nexusmods.com/metalgearsolidvtpp/mods/258
Though I think the scripting behind it is pretty primitive at the moment. I can't find enough of the 'PlayerStatus' variables, aside from the basics (STAND,SQUAT,CRAWL,BEHIND). Hopefully we can find new variables out and improve on this system so that we can add more camera state over-rides such as the currently missing CQC-Hold camera state.
Nice, I was taking the same approach of separate settings switched on playerstatus, you can see it in my mods InfMain:UpdateCameraAdjust, disabled, but there, though as it's using my other mod systems it's not quite applicable.
I would have released it in r128 but wasn't happy with some of my realtime editing in respect to switching all the status, and had other technical issues related to saving, trying to be too fancy I guess. Plus it's been my general policy to not do a feature if the community has one that can work along side my mod. In the case of the free cam it was a case of me already having been working on it for a week or so, and it being a different enough feature even though it was a variant of the same script function. I did contact mxmstr at release with this same basic explanation.
Anyway I'm happy to leave it unused since you've got something pretty good out yourself.
There is an issue of getting these separate-module/Update mods to install nice, ThreeSocks3 who provided the example mxmstr based his setup on did also provide a batch file with his mods that patches Tpp.lua and TppMain without conflicting with other ones, and since it's patching wouldn't be affected by a game update (beyond having to re-run), and likewise works with the modified files in my mod.
The downside is it's an extra step before installing the files itself.
Ideally I should set up my input and menu modules so other mods could use them so to not reinvent the wheel, not that they're particularly great, but it would run into the same issue of patching parts of scripts.
Again, ideally snakebite would be able to handle this step but unfortunately Topher is not actively developing snakebite. snakebite is however open source and he's said he's happy for anyone to carry on, but I haven't mustered up the enthusiasm to do anything with it.
Anyway, some actual info:
Other flags for playerstatus according to the exe
STAND
SQUAT
CRAWL
NORMAL_ACTION
PARALLEL_MOVE
IDLE
GUN_FIRE
GUN_FIRE_SUPPRESSOR
STOP
WALK
RUN
DASH
ON_HORSE
ON_VEHICLE
ON_HELICOPTER
HORSE_STAND
HORSE_HIDE_R
HORSE_HIDE_L
HORSE_IDLE
HORSE_TROT
HORSE_CANTER
HORSE_GALLOP
BINOCLE
SUBJECT
INTRUDE
LFET_STOCK
CUTIN
DEAD
DEAD_FRESH
NEAR_DEATH
NEAR_DEAD
FALL
CBOX
CBOX_EVADE
TRASH_BOX
TRASH_BOX_HALF_OPEN
INJURY_LOWER
INJURY_UPPER
CURE
CQC_CONTINUOUS
BEHIND
ENABLE_TARGET_MARKER_CHECK
UNCONSCIOUS
PARTS_ACTIVE
CARRY
CURTAIN
VOLGIN_CHASE
Haven't explored those values in detail
bitflags for PlayerPad
DECIDE=0,
STANCE=1,
DASH=2,
HOLD=3,
FIRE=4,
RIDE_ON=5,
RIDE_OFF=5,
ACTION=5,
MOVE_ACTION=5,
JUMP=5,
RELOAD=6,
STOCK=7,
ZOOM_CHANGE=7,
VEHICLE_CHANGE_SIGHT=7,
MB_DEVICE=8,
CALL=9,
INTERROGATE=9,
SUBJECT=10,
UP=11,
PRIMARY_WEAPON=11,
DOWN=12,
SECONDARY_WEAPON=12,
LEFT=13,
RIGHT=14,
VEHICLE_LIGHT_SWITCH=14,
VEHICLE_TOGGLE_WEAPON=14,
CQC=15,
SIDE_ROLL=16,
LIGHT_SWITCH=17,
EVADE=18,
VEHICLE_FIRE=19,
VEHICLE_CALL=20,
VEHICLE_DASH=21,
BUTTON_PLACE_MARKER=22,
PLACE_MARKER=22,
ESCAPE=23,--tex Not in PlayerPad, own name
dash,hold,fire,subject and cqc aren't listed in exe for whatever reason but are used at different points in script. I worked through it all manually anyway back when, both printing out the value of the flags and testing flags that would fall in the gaps.
The numbers on the list are the pow values, so do 2^flag index (except for ALL obviously) if for whatever reason you want to use a direct value, though not much use since they mostly seem accounted for.
ESCAPE (my naming) is a bit odd, figured it out manually from the next logical value/outputting scannedbuttons, but there's no actual matching use of it I could see in the scripts, it's not strictly the Pause binding since it's still set on press even if Pause is rebound.
2^24 is set on both quick dive and RS click, which has so much bound to it that I can't really figure out what it's supposed to signify.
Testing 2^25 to 2^32(assuming uint) didn't come up with anything further, though it can't remember how exhaustively I tested those (it's been a while)
You'll see a bunch of the flags use the same values, which means there's no way to differentiate on those when pressed.
The naming of the functions band/bor/bxor and the rest in the exe suggest fox engine is using an implementation of bitops
http://bitop.luajit.org
STICK_L
STICK_R
TRIGGER_L
TRIGGER_R
TRIGGER_ACCEL
TRIGGER_BREAK
are used with other functions/variables/not used with scannedButtons
An updated version of my deminification attempts is on my nexus page:
http://www.nexusmods.com/metalgearsolid ... 3D45&pUp=1