Improve hand positioning
This commit is contained in:
@@ -37,22 +37,28 @@ equipSitePQ = \case
|
||||
translatePointToRightHand :: Creature -> Point3 -> Point3
|
||||
translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p,Q.qID))
|
||||
|
||||
handWalkingPos :: FootForward -> Float -> Creature -> Point3
|
||||
handWalkingPos b off cr = case cr ^. crStance . carriage of
|
||||
Walking sa ff ->
|
||||
let slen = cr ^. crStance . strideLength
|
||||
f i | ff == b = 8 * (slen - i) / slen
|
||||
| otherwise = 8 * i / slen
|
||||
in V3 (f sa) off 12
|
||||
Falling sa ff ->
|
||||
let slen = cr ^. crStance . strideLength
|
||||
f i | ff == b = 8 * (slen - i) / slen
|
||||
| otherwise = 8 * i / slen
|
||||
in V3 (f sa) off 20
|
||||
Floating -> V3 0 off 12
|
||||
Flying -> V3 0 off 12
|
||||
Boosting _ -> V3 0 off 12
|
||||
|
||||
rightHandPQ :: Creature -> Point3Q
|
||||
rightHandPQ cr
|
||||
| oneH cr = (V3 11 (-3) 20, Q.qID)
|
||||
| twists cr = (V3 0 5 20, Q.qz (-1)) `Q.comp` (V3 4 (-10) 0,Q.qID)
|
||||
| twoFlat cr = (V3 4 (-8) 10, Q.qID)
|
||||
| otherwise = case cr ^? crStance . carriage of
|
||||
Just (Walking sa LeftForward) -> (V3 (- f sa) (- off) 10, Q.qID)
|
||||
Just (Walking sa RightForward) -> (V3 (- g sa) (- off) 10, Q.qID)
|
||||
Just (Falling sa LeftForward) -> (V3 (- f sa) (- off) 10, Q.qID)
|
||||
Just (Falling sa RightForward) -> (V3 (- g sa) (- off) 10, Q.qID)
|
||||
_ -> (V3 0 (- off) 10, Q.qID)
|
||||
where
|
||||
off = 8
|
||||
sLen = _strideLength $ _crStance cr
|
||||
f i = negate 2 + negate 6 * (sLen - i) / sLen
|
||||
g i = negate 2 + negate 6 * i / sLen
|
||||
| twoFlat cr = (V3 4 (-8) 12, Q.qID)
|
||||
| otherwise = (handWalkingPos LeftForward (-8) cr, Q.qID)
|
||||
|
||||
translateToRightHand :: Creature -> SPic -> SPic
|
||||
translateToRightHand = overPosSP . translatePointToRightHand
|
||||
@@ -62,20 +68,10 @@ rightWristPQ cr = rightHandPQ cr `Q.comp` (V3 0 (-4) (-4), Q.qID)
|
||||
|
||||
leftHandPQ :: Creature -> Point3Q
|
||||
leftHandPQ cr
|
||||
| oneH cr = (V3 0 off 10, Q.qz 0.4)
|
||||
| oneH cr = (V3 0 8 10, Q.qz 0.4)
|
||||
| twists cr = (V3 0 5 20, Q.qz (-1)) `Q.comp` (V3 12 4 0, Q.qz 0.4)
|
||||
| twoFlat cr = (V3 4 8 10, Q.qID)
|
||||
| otherwise = case cr ^? crStance . carriage of
|
||||
Just (Walking sa RightForward) -> (V3 (- f sa) off 10 , Q.qID)
|
||||
Just (Walking sa LeftForward) -> (V3 (- g sa) off 10 , Q.qID)
|
||||
Just (Falling sa RightForward) -> (V3 (- f sa) off 10 , Q.qID)
|
||||
Just (Falling sa LeftForward) -> (V3 (- g sa) off 10 , Q.qID)
|
||||
_ -> (V3 0 off 10, Q.qID)
|
||||
where
|
||||
off = 8
|
||||
sLen = _strideLength $ _crStance cr
|
||||
f i = negate 2 + negate 6 * (sLen - i) / sLen
|
||||
g i = negate 2 + negate 6 * i / sLen
|
||||
| twoFlat cr = (V3 4 8 12, Q.qID)
|
||||
| otherwise = (handWalkingPos RightForward 8 cr, Q.qID)
|
||||
|
||||
translatePointToLeftHand :: Creature -> Point3 -> Point3
|
||||
translatePointToLeftHand cr p = fst (leftHandPQ cr `Q.comp` (p,Q.qID))
|
||||
|
||||
@@ -73,7 +73,7 @@ arms cr =
|
||||
translateToRightHand cr aHand
|
||||
<> translateToLeftHand cr aHand
|
||||
where
|
||||
aHand = noPic $ translateSHz (-4) . upperPrismPolyHalfST 4 $ polyCirc 3 4
|
||||
aHand = noPic $ translateSHz (-2) . upperPrismPolyHalfST 2 $ polyCirc 3 4
|
||||
|
||||
deadScalp :: Creature -> Shape
|
||||
--deadScalp cr = deadRot cr . translateSHz 5 . scalp $ cr
|
||||
@@ -98,12 +98,8 @@ torso :: Creature -> Shape
|
||||
{-# INLINE torso #-}
|
||||
torso cr = overPosSH (translateToES cr OnBack) tsh
|
||||
where
|
||||
tsh =
|
||||
mconcat
|
||||
[ translateSHxy 0 3 . rotateSH (negate 0.2) $ aShoulder
|
||||
, translateSHxy 0 (negate 3) . rotateSH 0.2 $ aShoulder
|
||||
]
|
||||
aShoulder = scaleSH (V3 10 10 1) baseShoulder
|
||||
tsh = ashoulder 3 (-0.2) <> ashoulder (-3) 0.2
|
||||
ashoulder y a = translateSHxy 0 y . rotateSH a $ scaleSH (V3 10 10 1) baseShoulder
|
||||
|
||||
deadUpperBody :: Creature -> Shape
|
||||
deadUpperBody cr = deadRot cr . translateSHz (negate 10) . upperBody $ cr
|
||||
|
||||
@@ -2534,7 +2534,7 @@ activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 63;" f
|
||||
activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f
|
||||
addArmour src/Dodge/Creature.hs 82;" f
|
||||
addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f
|
||||
addButtonSlowDoor src/Dodge/Room/LongDoor.hs 97;" f
|
||||
addButtonSlowDoor src/Dodge/Room/LongDoor.hs 98;" f
|
||||
addCrGibs src/Dodge/Prop/Gib.hs 17;" f
|
||||
addDepth src/Picture/Base.hs 125;" f
|
||||
addDoorAtNthLinkToggleInterrupt src/Dodge/Room/Warning.hs 43;" f
|
||||
@@ -2639,7 +2639,7 @@ argV src/Geometry/Vector.hs 81;" f
|
||||
armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f
|
||||
armouredChasers src/Dodge/Room/Boss.hs 58;" f
|
||||
armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f
|
||||
arms src/Dodge/Creature/Picture.hs 72;" f
|
||||
arms src/Dodge/Creature/Picture.hs 69;" f
|
||||
arrow src/Picture/Composite.hs 19;" f
|
||||
arrowPath src/Picture/Composite.hs 8;" f
|
||||
assignHotkey src/Dodge/AssignHotkey.hs 9;" f
|
||||
@@ -2669,7 +2669,7 @@ axisInt src/Geometry/Intersect.hs 246;" f
|
||||
azure src/Color.hs 49;" f
|
||||
bQuadToF src/Geometry/Bezier.hs 37;" f
|
||||
bQuadToLine src/Geometry/Bezier.hs 30;" f
|
||||
backPQ src/Dodge/Creature/HandPos.hs 136;" f
|
||||
backPQ src/Dodge/Creature/HandPos.hs 126;" f
|
||||
backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f
|
||||
backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f
|
||||
backpackShape src/Dodge/Item/Draw/SPic.hs 188;" f
|
||||
@@ -2691,7 +2691,7 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f
|
||||
baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f
|
||||
baseRodShape src/Dodge/Item/Draw/SPic.hs 405;" f
|
||||
baseSMGShape src/Dodge/Item/Draw/SPic.hs 393;" f
|
||||
baseShoulder src/Dodge/Creature/Picture.hs 114;" f
|
||||
baseShoulder src/Dodge/Creature/Picture.hs 107;" f
|
||||
baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f
|
||||
baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f
|
||||
baseStickSpread src/Dodge/HeldUse.hs 346;" f
|
||||
@@ -2834,7 +2834,7 @@ checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f
|
||||
checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f
|
||||
checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f
|
||||
chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f
|
||||
chestPQ src/Dodge/Creature/HandPos.hs 133;" f
|
||||
chestPQ src/Dodge/Creature/HandPos.hs 123;" f
|
||||
chooseCursorBorders src/Dodge/Render/List.hs 141;" f
|
||||
chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f
|
||||
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f
|
||||
@@ -3090,10 +3090,10 @@ dbwMuzzles src/Dodge/HeldUse.hs 349;" f
|
||||
deZoneIX src/Dodge/Zoning/Base.hs 91;" f
|
||||
deZoneWall src/Dodge/Zoning/Wall.hs 69;" f
|
||||
deadEndRoom src/Dodge/Room/Room.hs 261;" f
|
||||
deadFeet src/Dodge/Creature/Picture.hs 68;" f
|
||||
deadRot src/Dodge/Creature/Picture.hs 86;" f
|
||||
deadScalp src/Dodge/Creature/Picture.hs 81;" f
|
||||
deadUpperBody src/Dodge/Creature/Picture.hs 111;" f
|
||||
deadFeet src/Dodge/Creature/Picture.hs 65;" f
|
||||
deadRot src/Dodge/Creature/Picture.hs 83;" f
|
||||
deadScalp src/Dodge/Creature/Picture.hs 78;" f
|
||||
deadUpperBody src/Dodge/Creature/Picture.hs 104;" f
|
||||
debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f
|
||||
debrisSPic src/Dodge/Prop/Draw.hs 16;" f
|
||||
debrisSize src/Dodge/Block/Debris.hs 89;" f
|
||||
@@ -3344,7 +3344,7 @@ drawDragSelecting src/Dodge/Render/HUD.hs 162;" f
|
||||
drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f
|
||||
drawEmptySet src/Dodge/Render/Picture.hs 151;" f
|
||||
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
|
||||
drawEquipment src/Dodge/Creature/Picture.hs 125;" f
|
||||
drawEquipment src/Dodge/Creature/Picture.hs 116;" f
|
||||
drawExamineInventory src/Dodge/Render/HUD.hs 199;" f
|
||||
drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f
|
||||
drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f
|
||||
@@ -3491,7 +3491,7 @@ equipInfo src/Dodge/Item/Info.hs 140;" f
|
||||
equipItemSPic src/Dodge/Item/Draw/SPic.hs 159;" f
|
||||
equipPosition src/Dodge/Item/Draw.hs 38;" f
|
||||
equipSiteInfo src/Dodge/Item/Info.hs 253;" f
|
||||
equipSitePQ src/Dodge/Creature/HandPos.hs 27;" f
|
||||
equipSitePQ src/Dodge/Creature/HandPos.hs 28;" f
|
||||
equipType src/Dodge/Data/EquipType.hs 10;" f
|
||||
equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f
|
||||
equipmentStrValue src/Dodge/Creature/Statistics.hs 56;" f
|
||||
@@ -3714,6 +3714,7 @@ haltSound src/Dodge/SoundLogic.hs 38;" f
|
||||
hammerCheck src/Dodge/HeldUse.hs 67;" f
|
||||
handHandleOrient src/Dodge/Item/HeldOffset.hs 58;" f
|
||||
handOrient src/Dodge/Item/HeldOffset.hs 40;" f
|
||||
handWalkingPos src/Dodge/Creature/HandPos.hs 41;" f
|
||||
handleEvent src/Dodge/Event.hs 27;" f
|
||||
handleHotkeys src/Dodge/Creature/YourControl.hs 46;" f
|
||||
handleKeyboardEvent src/Dodge/Event/Input.hs 23;" f
|
||||
@@ -3736,7 +3737,7 @@ head src/DoubleStack.hs 14;" f
|
||||
headLamp src/Dodge/Item/Equipment.hs 68;" f
|
||||
headLampShape src/Dodge/Item/Draw/SPic.hs 423;" f
|
||||
headMap src/Dodge/DoubleTree.hs 118;" f
|
||||
headPQ src/Dodge/Creature/HandPos.hs 124;" f
|
||||
headPQ src/Dodge/Creature/HandPos.hs 114;" f
|
||||
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f
|
||||
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 108;" f
|
||||
healthTest src/Dodge/Room/LasTurret.hs 130;" f
|
||||
@@ -4001,10 +4002,10 @@ left src/DoubleStack.hs 16;" f
|
||||
leftChildList src/Dodge/Item/Grammar.hs 193;" f
|
||||
leftHandPQ src/Dodge/Creature/HandPos.hs 63;" f
|
||||
leftIsParentCombine src/Dodge/Item/Grammar.hs 170;" f
|
||||
leftLegPQ src/Dodge/Creature/HandPos.hs 89;" f
|
||||
leftLegPQ src/Dodge/Creature/HandPos.hs 79;" f
|
||||
leftPad src/Padding.hs 15;" f
|
||||
leftRightCombine src/Dodge/Item/Grammar.hs 205;" f
|
||||
leftWristPQ src/Dodge/Creature/HandPos.hs 86;" f
|
||||
leftWristPQ src/Dodge/Creature/HandPos.hs 76;" f
|
||||
legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f
|
||||
lerpP2A src/Dodge/ShiftPoint.hs 14;" f
|
||||
liShape src/Dodge/Placement/Instance/LightSource.hs 85;" f
|
||||
@@ -4103,7 +4104,7 @@ makeCorpse src/Dodge/Corpse/Make.hs 13;" f
|
||||
makeDebris src/Dodge/Block/Debris.hs 48;" f
|
||||
makeDebrisDirected src/Dodge/Block/Debris.hs 51;" f
|
||||
makeDoorDebris src/Dodge/Block/Debris.hs 26;" f
|
||||
makeDumbSwitch src/Dodge/Room/LongDoor.hs 141;" f
|
||||
makeDumbSwitch src/Dodge/Room/LongDoor.hs 142;" f
|
||||
makeDustAt src/Dodge/WorldEvent/Cloud.hs 17;" f
|
||||
makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 68;" f
|
||||
makeFlak src/Dodge/Bullet.hs 146;" f
|
||||
@@ -4555,7 +4556,7 @@ psposAddLabel src/Dodge/PlacementSpot.hs 71;" f
|
||||
pt0 src/Dodge/LevelGen/PlacementHelper.hs 55;" f
|
||||
ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f
|
||||
pulseChecker src/Dodge/Item/Equipment.hs 84;" f
|
||||
pushCaverns src/Dodge/Room/LongDoor.hs 188;" f
|
||||
pushCaverns src/Dodge/Room/LongDoor.hs 189;" f
|
||||
pushCr src/Dodge/WallCreatureCollisions.hs 43;" f
|
||||
pushL src/DoubleStack.hs 20;" f
|
||||
pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 116;" f
|
||||
@@ -4723,9 +4724,9 @@ rhombus src/Polyhedra.hs 69;" f
|
||||
rifle src/Dodge/Item/Held/Cane.hs 19;" f
|
||||
right src/DoubleStack.hs 16;" f
|
||||
rightChildList src/Dodge/Item/Grammar.hs 199;" f
|
||||
rightHandPQ src/Dodge/Creature/HandPos.hs 40;" f
|
||||
rightHandPQ src/Dodge/Creature/HandPos.hs 50;" f
|
||||
rightIsParentCombine src/Dodge/Item/Grammar.hs 181;" f
|
||||
rightLegPQ src/Dodge/Creature/HandPos.hs 107;" f
|
||||
rightLegPQ src/Dodge/Creature/HandPos.hs 97;" f
|
||||
rightPad src/Padding.hs 19;" f
|
||||
rightPadNoSquash src/Padding.hs 23;" f
|
||||
rightWristPQ src/Dodge/Creature/HandPos.hs 60;" f
|
||||
@@ -4814,7 +4815,7 @@ scale3 src/Picture/Base.hs 137;" f
|
||||
scaleMat src/MatrixHelper.hs 71;" f
|
||||
scaleMatrix src/MatrixHelper.hs 68;" f
|
||||
scaleSH src/Shape.hs 266;" f
|
||||
scalp src/Dodge/Creature/Picture.hs 95;" f
|
||||
scalp src/Dodge/Creature/Picture.hs 92;" f
|
||||
scancodeToHotkey src/Dodge/Creature/YourControl.hs 102;" f
|
||||
scodeToChar src/Dodge/ScodeToChar.hs 6;" f
|
||||
scorchSPic src/Dodge/Creature/Update.hs 127;" f
|
||||
@@ -4968,7 +4969,6 @@ shortPoint2 src/Dodge/ShortShow.hs 4;" f
|
||||
shortShow src/ShortShow.hs 7;" f
|
||||
shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 527;" f
|
||||
shoulderHeight src/Dodge/Item/HeldOffset.hs 64;" f
|
||||
shoulderSH src/Dodge/Creature/Picture.hs 122;" f
|
||||
showAttachItem src/Dodge/Item/Display.hs 92;" f
|
||||
showEquipItem src/Dodge/Item/Display.hs 108;" f
|
||||
showInt src/Dodge/Item/Info.hs 75;" f
|
||||
@@ -5013,10 +5013,10 @@ slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f
|
||||
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f
|
||||
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f
|
||||
slideWindow src/ListHelp.hs 81;" f
|
||||
slowCrush90 src/Dodge/Room/LongDoor.hs 224;" f
|
||||
slowCrushRoom src/Dodge/Room/LongDoor.hs 144;" f
|
||||
slowDoorRoom src/Dodge/Room/LongDoor.hs 270;" f
|
||||
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 287;" f
|
||||
slowCrush90 src/Dodge/Room/LongDoor.hs 229;" f
|
||||
slowCrushRoom src/Dodge/Room/LongDoor.hs 145;" f
|
||||
slowDoorRoom src/Dodge/Room/LongDoor.hs 275;" f
|
||||
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 292;" f
|
||||
smallBattery src/Dodge/Item/Ammo.hs 57;" f
|
||||
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
|
||||
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
|
||||
@@ -5283,7 +5283,7 @@ topTestPart src/Dodge/TestString.hs 71;" f
|
||||
torchShape src/Dodge/Item/Draw/SPic.hs 277;" f
|
||||
torqueAmount src/Dodge/HeldUse.hs 606;" f
|
||||
torqueCr src/Dodge/WorldEffect.hs 84;" f
|
||||
torso src/Dodge/Creature/Picture.hs 100;" f
|
||||
torso src/Dodge/Creature/Picture.hs 97;" f
|
||||
tractCr src/Dodge/TractorBeam/Update.hs 28;" f
|
||||
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
|
||||
tractorBeamAt src/Dodge/HeldUse.hs 850;" f
|
||||
@@ -5299,8 +5299,8 @@ translate3 src/Picture/Base.hs 112;" f
|
||||
translateFloatingCamera src/Dodge/Update/Camera.hs 50;" f
|
||||
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 68;" f
|
||||
translateH src/Picture/Base.hs 104;" f
|
||||
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 80;" f
|
||||
translatePointToRightHand src/Dodge/Creature/HandPos.hs 37;" f
|
||||
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 70;" f
|
||||
translatePointToRightHand src/Dodge/Creature/HandPos.hs 38;" f
|
||||
translateSH src/Shape.hs 242;" f
|
||||
translateSHxy src/Shape.hs 246;" f
|
||||
translateSHz src/Shape.hs 250;" f
|
||||
@@ -5308,11 +5308,11 @@ translateSP src/ShapePicture.hs 53;" f
|
||||
translateSPxy src/ShapePicture.hs 45;" f
|
||||
translateSPz src/ShapePicture.hs 49;" f
|
||||
translateScreenPos src/Dodge/ScreenPos.hs 12;" f
|
||||
translateToES src/Dodge/Creature/HandPos.hs 24;" f
|
||||
translateToLeftHand src/Dodge/Creature/HandPos.hs 83;" f
|
||||
translateToLeftLeg src/Dodge/Creature/HandPos.hs 104;" f
|
||||
translateToES src/Dodge/Creature/HandPos.hs 25;" f
|
||||
translateToLeftHand src/Dodge/Creature/HandPos.hs 73;" f
|
||||
translateToLeftLeg src/Dodge/Creature/HandPos.hs 94;" f
|
||||
translateToRightHand src/Dodge/Creature/HandPos.hs 57;" f
|
||||
translateToRightLeg src/Dodge/Creature/HandPos.hs 121;" f
|
||||
translateToRightLeg src/Dodge/Creature/HandPos.hs 111;" f
|
||||
translateXY src/Polyhedra.hs 23;" f
|
||||
trapTBH src/Geometry/Polygon.hs 22;" f
|
||||
trapezionBWHW src/Geometry/Polygon.hs 34;" f
|
||||
@@ -5512,7 +5512,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f
|
||||
updateWheelEvents src/Dodge/Update.hs 473;" f
|
||||
updateWorldEventFlag src/Dodge/Update.hs 127;" f
|
||||
updateWorldEventFlags src/Dodge/Update.hs 115;" f
|
||||
upperBody src/Dodge/Creature/Picture.hs 118;" f
|
||||
upperBody src/Dodge/Creature/Picture.hs 112;" f
|
||||
upperBox src/Shape.hs 153;" f
|
||||
upperBoxHalf src/Shape.hs 219;" f
|
||||
upperBoxMT src/Shape.hs 144;" f
|
||||
|
||||
Reference in New Issue
Block a user