Guest User

Untitled

a guest
Jan 14th, 2020
208
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff --git a/HPBase/Classes/BaseCam.uc b/HPBase/Classes/BaseCam.uc
  2. index 61b55b9..2c4755e 100644
  3. --- a/HPBase/Classes/BaseCam.uc
  4. +++ b/HPBase/Classes/BaseCam.uc
  5. @@ -2,6 +2,32 @@
  6. //________________________________________________________________________________________
  7. class BaseCam extends Pawn;
  8.  
  9. +//Edited by- AdamJD (edited code will have AdamJD by it)
  10. +
  11. +// Enumeration of camera types, some of these are not currently used
  12. +enum ECameraType
  13. +{
  14. + CAM_Standard,
  15. + CAM_Quiditch,
  16. + CAM_Far,
  17. +// CAM_Combat,
  18. + CAM_Boss,
  19. + CAM_High,
  20. + CAM_Reverse,
  21. +// CAM_Fixed,
  22. +// CAM_Rotate,
  23. +// CAM_Free,
  24. + CAM_FreeCam,
  25. + CAM_Cut,
  26. + CAM_TrollChase,
  27. + CAM_Patrol,
  28. + CAM_TopDown,
  29. + CAM_Test,
  30. + CAM_Test2,
  31. + CAM_Test3,
  32. + CAM_LockAroundHarry,
  33. +};
  34. +
  35. var vector TrackingPoint; //vector to the player
  36. var baseharry p; // the pawn the camera is tracking
  37. var rotator lastRot; // what the last rotation was
  38. @@ -98,30 +124,6 @@ var float fShakeDuration;
  39. var float fStartShakeDuration;
  40. var float fShakeMagnitude;
  41.  
  42. -// Enumeration of camera types, some of these are not currently used
  43. -enum ECameraType
  44. -{
  45. - CAM_Standard,
  46. - CAM_Quiditch,
  47. - CAM_Far,
  48. -// CAM_Combat,
  49. - CAM_Boss,
  50. - CAM_High,
  51. - CAM_Reverse,
  52. -// CAM_Fixed,
  53. -// CAM_Rotate,
  54. -// CAM_Free,
  55. - CAM_FreeCam,
  56. - CAM_Cut,
  57. - CAM_TrollChase,
  58. - CAM_Patrol,
  59. - CAM_TopDown,
  60. - CAM_Test,
  61. - CAM_Test2,
  62. - CAM_Test3,
  63. - CAM_LockAroundHarry,
  64. -};
  65. -
  66. var(camera) ECameraType CameraType;
  67.  
  68. // Used to save and restore states
  69. @@ -154,11 +156,152 @@ var NavigationPoint tempNavP, LastNavP;
  70.  
  71. var float NormalCameraSpeed; //used by SetCameraSpeed to set the speed as a fraction of full speed.
  72. var rotator NormalCameraRotSpeed; // ""
  73. +
  74. +
  75. +//AdamJD vars
  76. +// var float rotvalX; //old -AdamJD
  77. +// var float rotvalY; //old -AdamJD
  78. +
  79. +var Target rectarget;
  80. +
  81. +//mouse data (comments copied from HP2 proto)
  82. +var float fMouseDeltaX; // saved mouse deltaX and deltaY playerHarry
  83. +var float fMouseDeltaY;
  84. +
  85. +var bool bSyncRotationWithTarget; // Sync our curr rotation to always face target
  86. +var bool bSyncPositionWithTarget; // Sync cam position with CamTarget's position at a fixed distance
  87. +
  88. +var CamTarget camTarget; // camera's target (seperate pawn so we can use flyto interpolation )
  89. +var vector vForward; // The forward vector (for refrence outside the camera)
  90. +var rotator rRotationStep; // Rotation Step ( rotation step will be applied over time)
  91. +
  92. +var rotator rDestRotation; // Rotation Destination
  93. +var vector vDestPosition; // Position Destination
  94. +var rotator rCurrRotation; // Rotation Current
  95. +var vector vCurrPosition; // Position Current
  96. +
  97. +var float fCurrLookAtDistance; // Current LookAt Distance will change
  98. +var float fMoveBackTightness; // Current MoveBack tightness (used when camera moves back from hitting a wall or a bBlockCamera actor )
  99. +
  100. +var float fCurrentMinPitch; // Current Min pitch the camera can have
  101. +var float fCurrentMaxPitch; // Current Max pitch the camera can have
  102. +
  103. +var rotator rBossRotationOffset; // This is always centered around a zero rotation, then as you move the mouse, it stays within a narrow cone, and is
  104. + // added to rDestRotation. Gives player ability to 'aim' while in boss cam.
  105. +var rotator rExtraRotation; // An additional rotation which can be added to the final rotation, say, for camera shake. Is zero'd every tick.
  106. +
  107. +//standard cam specific (comments copied from HP2 proto)
  108. +var rotator rSavedRotation; // saved when you leave standard mode and reloaded when you come back
  109. +var vector vSavedPosition; // saved when you leave standard mode and reloaded when you come back
  110. +var float fPitchMovingInThreshold; // set by the constant PITCH_MOVING_IN_THRESHOLD
  111. +var float fPitchMovingInSpread; // set by the constant PITCH_MOVING_IN_SPREAD
  112. +var float fDistanceScalar; // obtained by comparing the current pitch with the spread (once you attain the threshold)
  113. +var float fDistanceScalarMin; // min for fDistanceScalar. around 0.15. set by DISTANCE_SCALAR_MIN
  114. +var vector vLookAtOffset; // Current Offset applyed to our lookAt point
  115. +var float fLookAtDistance; // How far away from the lookAt point is the camera?
  116. +var float fRotTightness; // The higher the tighness the faster our curLocation == targetLocation
  117. +var float fRotSpeed; // How fast are we (per sec) at moving.
  118. +var float fMoveTightness; // The higher the tighness the faster our curRotation == targetRotation
  119. +var float fMoveSpeed; // How fast are we (per sec) at rotating.
  120. +
  121. +//mouseDelta min and max constants (comments copied from HP2 proto)
  122. +const MIN_MOUSE_DELTA_X = -20000.0f;
  123. +const MAX_MOUSE_DELTA_X = 20000.0f;
  124. +const MIN_MOUSE_DELTA_Y = -10000.0f;
  125. +const MAX_MOUSE_DELTA_Y = 10000.0f;
  126. +
  127. +//standard cam pitch/moving in constants (comments copied from HP2 proto)
  128. +const PITCH_MOVING_IN_THRESHOLD = 0.0f;
  129. +const PITCH_MOVING_IN_SPREAD = 10000.0f;
  130. +const DISTANCE_SCALAR_MIN = 0.15;
  131. +
  132. +
  133. /*------------------------------------------------------*/
  134. /* LOCAL FUNCTIONS */
  135. /*------------------------------------------------------*/
  136. +//AdamJD
  137. +function PreBeginPlay()
  138. +{
  139. + SetCollision(false, false, false);
  140. + bCollideWorld = false;
  141. +
  142. + fPitchMovingInThreshold = PITCH_MOVING_IN_THRESHOLD;
  143. + fPitchMovingInSpread = PITCH_MOVING_IN_SPREAD;
  144. + fDistanceScalarMin = DISTANCE_SCALAR_MIN;
  145. +}
  146. +
  147. +//AdamJD
  148. +function PostBeginPlay()
  149. +{
  150. + local int count;
  151. + local vector tloc;
  152. + local vector targetoffset;
  153. +
  154. + Super.PostBeginPlay();
  155. +
  156. + foreach AllActors(class'baseharry', p)
  157. + {
  158. + break;
  159. + }
  160. +
  161. + foreach AllActors(class'Target', rectarget)
  162. + {
  163. + break;
  164. + }
  165. +
  166. + if( camTarget == None )
  167. + camTarget = spawn( class'CamTarget' );
  168. +
  169. + SetOwner( camTarget );
  170. + camTarget.Cam = self;
  171. +
  172. + rectarget.victim.eVulnerableToSpell=SPELL_None;
  173. +
  174. + //old code by me -AdamJD
  175. + // p.cam=self;
  176. + // camTarget.vOffset.x= p.SmoothMouseX;
  177. + // camTarget.vOffset.y= p.SmoothMouseY;
  178. + // camTarget.vOffset.z= 0;
  179. + // camTarget.aAttachedTo.IsA('baseHarry');
  180. +
  181. + //org retail code -AdamJD
  182. + CameraDistance=80.000000;
  183. + CameraHeight=120.000000;
  184. + CameraSpeed=2.000000;
  185. + NormalCameraSpeed=CameraSpeed;
  186. +
  187. + CameraRotSpeed=10.000000;
  188. + NormalCameraRotSpeed=RotationRate;
  189. +
  190. + RealCameraDistance = CameraDistance;
  191. + CanSeeCountdown = 4;
  192. +
  193. + SetCutCameraProx(NORMAL_PROXIMITY);
  194. +
  195. + count=0;
  196. + StackPointer = 0;
  197. +
  198. + while(count<16)
  199. + {
  200. + previousLocations[count] = vect(0, 0, 0);
  201. + count+=1;
  202. + }
  203. + currentLocation=0;
  204. +
  205. + bUseStrafing = true;
  206. + bUseBattleCam = false;
  207. +
  208. + HarrysPreviousPosition = vect(0, 0, 0);
  209. +
  210. + //@PAB
  211. + trackingDistance=cameraDistance/20;
  212. + setPhysics(PHYS_Rotating);
  213. +
  214. + SetCamera();
  215. +}
  216.  
  217. -function PostBeginPlayIP()
  218. +//old retail PostBeginPlay -AdamJD
  219. +/*function PostBeginPlayIP()
  220. {
  221. local int count;
  222.  
  223. @@ -196,7 +339,7 @@ function PostBeginPlayIP()
  224. //@PAB
  225. trackingDistance=cameraDistance/20;
  226. // trackingDistance=cameraDistance/10;
  227. - setPhysics(PHYS_Rotating);
  228. + setPhysics(PHYS_Rotating);*/
  229.  
  230. /* CamAimOffset[0] = vect(0, 50, -45);
  231. CamAimOffset[1] = vect(0, -50, -45);
  232. @@ -216,7 +359,8 @@ function PostBeginPlayIP()
  233. BattleCamAimOffset[3] = vect(0, -25, 50);
  234. BattleCamAimOffset[4] = vect(0, -50, 50);
  235. */
  236. - CamAimOffset[0] = vect(0, 0, 0);
  237. +
  238. +/* CamAimOffset[0] = vect(0, 0, 0);
  239. CamAimOffset[1] = vect(0, 0, 0);
  240. CamAimOffset[2] = vect(0, 0, 0);
  241. CamAimOffset[3] = vect(0, 0, 0);
  242. @@ -249,7 +393,7 @@ function PostBeginPlayIP()
  243. bShake = false;
  244. p.BossTarget = none;
  245. SetCamera();
  246. -}
  247. +}*/
  248.  
  249. function SetCameraSpeed(float Speed)
  250. {
  251. @@ -925,7 +1069,7 @@ function GeneralStationaryModeCamera(float deltatime, optional bool bMoveQuick)
  252.  
  253. for (TestCamera = 0; TestCamera < 6 && !bFoundGoodCamera; TestCamera++)
  254. {
  255. - if(p.IsInState('playeraiming') && bUseTargetingCamera)
  256. + if(/*p.IsInState('playeraiming') &&*/ bUseTargetingCamera) //AdamJD
  257. {
  258. if (p.Bosstarget != none || bUseBattleCam)
  259. {
  260. @@ -999,8 +1143,8 @@ function GeneralStationaryModeCamera(float deltatime, optional bool bMoveQuick)
  261.  
  262. goalpoint = CheckPosition(goalPoint);
  263.  
  264. - if (p.IsInState('playeraiming'))
  265. - {
  266. + // if (p.IsInState('playeraiming')) //AdamJD
  267. + // {
  268. // @PAB we need to find a good camera angle
  269.  
  270. if (!CanSeeTarget(goalPoint) && TestCamera != 5) // Don't increment last camera
  271. @@ -1016,17 +1160,18 @@ function GeneralStationaryModeCamera(float deltatime, optional bool bMoveQuick)
  272. bFoundGoodCamera = true;
  273. }
  274. }
  275. - else
  276. - {
  277. - CanSeeCountdown = 1.5;
  278. - bFoundGoodCamera = true;
  279. - }
  280. - }
  281. - else
  282. - {
  283. + //AdamJD
  284. + // else
  285. + // {
  286. + // CanSeeCountdown = 1.5;
  287. + // bFoundGoodCamera = true;
  288. + // }
  289. + //}
  290. + // else //AdamJD
  291. + // {
  292. CanSeeCountdown = 1.5;
  293. bFoundGoodCamera = true;
  294. - }
  295. + //}
  296. }
  297.  
  298. if (vsize(goalpoint - p.location) < 50)
  299. @@ -1051,8 +1196,8 @@ function GeneralStationaryModeCamera(float deltatime, optional bool bMoveQuick)
  300. }
  301. }
  302. */
  303. - if (p.IsInState('playeraiming'))
  304. - {
  305. + // if (p.IsInState('playeraiming')) //AdamJD
  306. + // {
  307. if (vsize(trackingpoint) > 50)
  308. {
  309. trackingpoint = (vsize(trackingpoint) - 50) * normal(trackingpoint);
  310. @@ -1087,7 +1232,7 @@ function GeneralStationaryModeCamera(float deltatime, optional bool bMoveQuick)
  311. MoveSmooth(trackingPoint);
  312. }
  313. }
  314. - }
  315. + //}
  316. else
  317. {
  318. if (bMoveQuick || bShake)
  319. @@ -1709,15 +1854,15 @@ function PositionCamera(float DeltaTime)
  320. locRot.pitch = camPitch;
  321. smoothRotate(p.ViewRotation, locRot, deltatime);
  322.  
  323. - if(p.IsInState('playeraiming'))
  324. - {
  325. - cameraLock = true;
  326. + // if(p.IsInState('playeraiming')) //AdamJD
  327. + // {
  328. + // cameraLock = true; //AdamJD
  329. if (!bWasAiming)
  330. {
  331. bWasAiming = true;
  332. NextTargetCam();
  333. }
  334. - }
  335. + //}
  336. else
  337. {
  338. bWasAiming = false;
  339. @@ -1795,15 +1940,15 @@ function PositionCamera(float DeltaTime)
  340. locRot.pitch = camPitch;
  341. smoothRotate(p.ViewRotation, locRot, deltatime);
  342.  
  343. - if(p.IsInState('playeraiming'))
  344. - {
  345. - cameraLock = true;
  346. + // if(p.IsInState('playeraiming')) //AdamJD
  347. + // {
  348. + // cameraLock = true; //AdamJD
  349. if (!bWasAiming)
  350. {
  351. bWasAiming = true;
  352. NextTargetCam();
  353. }
  354. - }
  355. + //}
  356. else
  357. {
  358. bWasAiming = false;
  359. @@ -1897,15 +2042,15 @@ function PositionCamera(float DeltaTime)
  360. locRot.pitch = camPitch;
  361. smoothRotate(p.ViewRotation, locRot, deltatime);
  362.  
  363. - if(p.IsInState('playeraiming'))
  364. - {
  365. - cameraLock = true;
  366. + // if(p.IsInState('playeraiming')) //AdamJD
  367. + // {
  368. + // cameraLock = true; //AdamJD
  369. if (!bWasAiming)
  370. {
  371. bWasAiming = true;
  372. NextTargetCam();
  373. }
  374. - }
  375. + //}
  376. else
  377. {
  378. bWasAiming = false;
  379. @@ -2000,15 +2145,15 @@ function PositionCamera(float DeltaTime)
  380. locRot.pitch = camPitch;
  381. smoothRotate(p.ViewRotation, locRot, deltatime);
  382.  
  383. - if(p.IsInState('playeraiming'))
  384. - {
  385. - cameraLock = true;
  386. + // if(p.IsInState('playeraiming')) //AdamJD
  387. + // {
  388. + //cameraLock = true; //AdamJD
  389. if (!bWasAiming)
  390. {
  391. bWasAiming = true;
  392. NextTargetCam();
  393. }
  394. - }
  395. + //}
  396. else
  397. {
  398. bWasAiming = false;
  399. @@ -2044,20 +2189,137 @@ function PositionCamera(float DeltaTime)
  400. goto 'loop';
  401. }
  402.  
  403. +//rotation function for the boss cam because the standard rotation is bugged for boss fights -AdamJD
  404. +function UpdateRotationForBoss( float fTimeDelta )
  405. +{
  406. + local float fTravelScalar;
  407. + local vector vDestRotation;
  408. + local vector vCurrRotation;
  409. +
  410. + vDestRotation = normal(vector(rDestRotation));
  411. + vCurrRotation = vForward;
  412. +
  413. + //update Rotation
  414. + if( bSyncRotationWithTarget )
  415. + {
  416. + //always face CamTarget
  417. + vDestRotation = CamTarget.location - location;
  418. + vCurrRotation = vDestRotation;
  419. + }
  420. +
  421. + else
  422. + {
  423. + //clamp travel scalar
  424. + if( fRotTightness > 0.0f )
  425. + {
  426. + fTravelScalar = FMin( 1.0f, fRotTightness * fTimeDelta );
  427. + }
  428. +
  429. + else
  430. + {
  431. + fTravelScalar = 1.0f;
  432. + }
  433. +
  434. + vCurrRotation += ( vDestRotation - vCurrRotation ) * fTravelScalar;
  435. + }
  436. +
  437. + vCurrRotation = normal(vCurrRotation);
  438. + rCurrRotation = rotator(vCurrRotation);
  439. +
  440. + vForward = vCurrRotation;
  441. +
  442. + //set rotation
  443. + SetFinalRotation( rotator(vCurrRotation) );
  444. +}
  445. +
  446. /*-----------------------------------------------------*/
  447.  
  448. state BossState
  449. {
  450. ignores takeDamage, SeePlayer, EnemyNotVisible, HearNoise, KilledBy, Trigger, Bump, HitWall, HeadZoneChange, FootZoneChange, ZoneChange, Falling, WarnTarget, Died, LongFall, PainTimer;
  451. +
  452. + function BeginState()
  453. + {
  454. + CameraType = CAM_Boss;
  455. +
  456. + //not needed -AdamJD
  457. + /*
  458. + p.StandardTarget.gotostate('BossFollow');
  459. + p.StandardTarget.TargetOffset = vect(100, 0 ,50);
  460. + p.clientmessage("Camera switch to Boss state " $string(p.bosstarget.name) $" " $string(directionactor.name));
  461. + p.StandardTarget.BossCamBox = BossCamBox;
  462. + p.StandardTarget.TargetOffset = vect(100, 0 ,50);
  463. + CameraHeight = 120.000000;
  464. + CameraDistance = 80.000;
  465. + CameraAimOffsetState = vect(0, 0, 0);
  466. + */
  467. +
  468. + //AdamJD
  469. + InitSettings( true, false );
  470. + InitTarget( p );
  471. + InitPositionAndRotation( false );
  472. +
  473. + //not needed -AdamJD
  474. + // if (bUseStrafing)
  475. + // {
  476. + // p.MovementMode(true);
  477. + // }
  478. +
  479. + //not needed -AdamJD
  480. + //FT: Hack for voldemort, unless we figure out the real problem, this should work.
  481. + // if( p.BossTarget.IsA( 'BossQuirrel' ) )
  482. + // {
  483. + // p.ClientMessage("BaseCam::BossState - Setting DirectionActor to none for Voldemort battle");
  484. + // DirectionActor = none;
  485. + // }
  486. + }
  487. +
  488. + function EndState()
  489. + {
  490. + //p.MovementMode(false); //not needed -AdamJD
  491. + p.BossTarget = none;
  492. + DirectionActor = none;
  493. + p.StandardTarget.gotostate('seeking');
  494. + CameraType = CAM_Standard; //go back to standard cam -AdamJD
  495. + }
  496.  
  497.  
  498. function Tick(float DeltaTime)
  499. {
  500. + local vector v;
  501. +
  502. + ApplyMouseXToDestYaw(DeltaTime);
  503. + ApplyMouseYToDestPitch(DeltaTime);
  504. +
  505. + //update camera -AdamJD
  506. + if( baseBoss(p.BossTarget) != none )
  507. + {
  508. + v = baseBoss(p.BossTarget).GetCameraOffset();
  509. + }
  510. + else
  511. + {
  512. + v = p.BossTarget.Location;
  513. + }
  514. +
  515. + rDestRotation = rotator(normal( v - location ));
  516. + //add boss offset -AdamJD
  517. + rDestRotation += rBossRotationOffset;
  518. +
  519. + //update rotation -AdamJD
  520. + UpdateRotationForBoss( DeltaTime );
  521. +
  522. + //update position -AdamJD
  523. + UpdatePosition( DeltaTime );
  524. +
  525. if (bInSpecialPause)
  526. {
  527. + //not smooth but it does the job... -AdamJD
  528. SaveState();
  529. gotostate('FreeCamState');
  530. }
  531. +
  532. + //not needed -AdamJD
  533. + /*
  534. else
  535. {
  536. CheckForBoss();
  537. @@ -2069,8 +2331,11 @@ ignores takeDamage, SeePlayer, EnemyNotVisible, HearNoise, KilledBy, Trigger, Bu
  538.  
  539. PositionCamera(DeltaTime);
  540. }
  541. + */
  542. }
  543. -
  544. +
  545. + //not needed -AdamJD
  546. + /*
  547. function PositionCamera(float DeltaTime)
  548. {
  549. local vector goalPoint;
  550. @@ -2113,11 +2378,12 @@ ignores takeDamage, SeePlayer, EnemyNotVisible, HearNoise, KilledBy, Trigger, Bu
  551.  
  552. camDistance = CameraOffset >> locRot;
  553.  
  554. - goalPoint = TargetPoint + p.Location + camDistance;
  555. -
  556. + goalPoint = TargetPoint + p.Location + camDistance;*/
  557. +
  558. +
  559. // If we are in aiming mode, see if we need to switch target CAM
  560. - if(p.IsInState('playeraiming') && bUseTargetingCamera)
  561. - {
  562. + //if(/*p.IsInState('playeraiming') &&*/ bUseTargetingCamera)
  563. + /*{
  564. // Give the camera some variety, change cam each time the player starts aiming
  565. if (!bWasAiming)
  566. {
  567. @@ -2173,41 +2439,9 @@ ignores takeDamage, SeePlayer, EnemyNotVisible, HearNoise, KilledBy, Trigger, Bu
  568. // @PAB remove when you wish to go back to a colliding camera
  569. // bCollide = false;
  570. SetCollisionState();
  571. - }
  572. -
  573. - function EndState()
  574. - {
  575. - p.MovementMode(false);
  576. - p.BossTarget = none;
  577. - DirectionActor = none;
  578. - p.StandardTarget.gotostate('seeking');
  579. - }
  580. -
  581. - function BeginState()
  582. - {
  583. - CameraType = CAM_Boss;
  584. - p.clientmessage("Camera switch to Boss state " $string(p.bosstarget.name) $" " $string(directionactor.name));
  585. - p.StandardTarget.BossCamBox = BossCamBox;
  586. - p.StandardTarget.gotostate('BossFollow');
  587. - p.StandardTarget.TargetOffset = vect(100, 0 ,50);
  588. - CameraHeight = 120.000000;
  589. - CameraDistance = 80.000;
  590. - CameraAimOffsetState = vect(0, 0, 0);
  591. -
  592. - if (bUseStrafing)
  593. - {
  594. - p.MovementMode(true);
  595. - }
  596. -
  597. - //FT: Hack for voldemort, unless we figure out the real problem, this should work.
  598. - if( p.BossTarget.IsA( 'BossQuirrel' ) )
  599. - {
  600. - p.ClientMessage("BaseCam::BossState - Setting DirectionActor to none for Voldemort battle");
  601. - DirectionActor = none;
  602. - }
  603. - }
  604. + }*/
  605.  
  606. - begin:
  607. + //begin:
  608.  
  609. /* if (p != none)
  610. {
  611. @@ -2218,14 +2452,15 @@ ignores takeDamage, SeePlayer, EnemyNotVisible, HearNoise, KilledBy, Trigger, Bu
  612. log("Harry is invalid!");
  613. }
  614. */
  615. -
  616. - loop:
  617. - sleep (0.0005);
  618. - if(!bShake)
  619. - {
  620. - turntoward(p.StandardTarget);
  621. - }
  622. - goto 'loop';
  623. +
  624. + //not needed -AdamJD
  625. + // loop:
  626. + // sleep (0.0005);
  627. + // if(!bShake)
  628. + // {
  629. + // turntoward(p.StandardTarget);
  630. + // }
  631. + // goto 'loop';
  632. }
  633.  
  634. /*-----------------------------------------------------*/
  635. @@ -2670,7 +2905,7 @@ function PositionCamera(float DeltaTime)
  636. GroundSpeed = 320.000000;
  637. AirSpeed = 320.000000;
  638. */
  639. -
  640. + CameraType = CAM_Standard; //fixes issue where the camera locks sometimes after a cutscene -AdamJD
  641. }
  642.  
  643. function BeginState()
  644. @@ -2778,19 +3013,19 @@ function PositionCamera(float DeltaTime)
  645. // locRot.pitch = camPitch;
  646. // smoothRotate(p.ViewRotation, locRot, deltatime);
  647.  
  648. -/* if(p.IsInState('playeraiming'))
  649. - {
  650. - cameraLock = true;
  651. + // if(p.IsInState('playeraiming')) //AdamJD
  652. + // {
  653. + //cameraLock = true; //AdamJD
  654. if (!bWasAiming)
  655. {
  656. bWasAiming = true;
  657. NextTargetCam();
  658. }
  659. - }
  660. + // }
  661. else
  662. - {*/
  663. + {
  664. bWasAiming = false;
  665. -// }
  666. + }
  667.  
  668. // log("Harry " $p.location.x $" " $p.location.y $" " $p.location.z);
  669. // log("camera " $location.x $" " $location.y $" " $location.z);
  670. @@ -3039,12 +3274,26 @@ auto state() StartState
  671. {
  672. function BeginState()
  673. {
  674. - PostBeginPlayIP();
  675. - p.gotostate('playerwalking');
  676. - p.ClientMessage("Going to state" $CameraType);
  677. + //not needed -AdamJD
  678. + //PostBeginPlayIP();
  679. + // p.gotostate('playerwalking');
  680. + // p.ClientMessage("Going to state" $CameraType);
  681. }
  682.  
  683. begin:
  684. + //AdamJD
  685. + InitSettings(true, false);
  686. + InitTarget(p);
  687. + InitPositionAndRotation( true );
  688. +
  689. + CameraType = CAM_Standard;
  690. + SetCamera();
  691. +}
  692. +
  693. +//AdamJD
  694. +state StateIdle
  695. +{
  696. + //don't do anything
  697. }
  698.  
  699. state Test3state
  700. @@ -3084,15 +3333,15 @@ function PositionCamera(float DeltaTime)
  701. /* locRot.pitch = camPitch;
  702. smoothRotate(p.ViewRotation, locRot, deltatime);
  703. */
  704. - if(p.IsInState('playeraiming'))
  705. - {
  706. - cameraLock = true;
  707. + // if(p.IsInState('playeraiming')) //AdamJD
  708. + // {
  709. + //cameraLock = true; //AdamJD
  710. if (!bWasAiming)
  711. {
  712. bWasAiming = true;
  713. NextTargetCam();
  714. }
  715. - }
  716. + //}
  717. else
  718. {
  719. bWasAiming = false;
  720. @@ -3163,7 +3412,7 @@ function PositionCamera(float DeltaTime)
  721. CameraAimOffsetState = vect(0, 0, 0);
  722. // CameraOffset = vect(140, -100, 0);
  723. }
  724. -
  725. +
  726. begin:
  727. loop:
  728. sleep (0.0005);
  729. @@ -3451,15 +3700,15 @@ function PositionCamera(float DeltaTime)
  730. locRot.pitch = camPitch;
  731. smoothRotate(p.ViewRotation, locRot, deltatime);
  732.  
  733. - if(p.IsInState('playeraiming'))
  734. - {
  735. - cameraLock = true;
  736. + // if(p.IsInState('playeraiming')) //AdamJD
  737. + // {
  738. + //cameraLock = true; //AdamJD
  739. if (!bWasAiming)
  740. {
  741. bWasAiming = true;
  742. NextTargetCam();
  743. }
  744. - }
  745. + //}
  746. else
  747. {
  748. bWasAiming = false;
  749. @@ -3500,22 +3749,24 @@ function PositionCamera(float DeltaTime)
  750. CameraType = CAM_Quiditch;
  751. p.clientmessage("Camera switch to Quidditch state");
  752. p.StandardTarget.TargetOffset = vect(100, 0 ,50);
  753. - CameraHeight = 60.000000;
  754. - CameraDistance = 150.000;
  755. - CameraAimOffsetState = vect(0, 0, 0);
  756. + //not needed -AdamJD
  757. + // CameraHeight = 60.000000;
  758. + // CameraDistance = 150.000;
  759. + // CameraAimOffsetState = vect(0, 0, 0);
  760. }
  761.  
  762. begin:
  763. -
  764. - loop:
  765. - sleep (0.0005);
  766. - if(!bShake)
  767. - {
  768. - turntoward(p.StandardTarget);
  769. - }
  770. -
  771. - goto 'loop';
  772. -}
  773. +
  774. + //not needed -AdamJD
  775. + // loop:
  776. + // sleep (0.0005);
  777. + // if(!bShake)
  778. + // {
  779. + // turntoward(p.StandardTarget);
  780. + // }
  781. +
  782. + // goto 'loop';
  783. +}
  784.  
  785. state FreeCamState
  786. {
  787. @@ -3525,30 +3776,72 @@ ignores takeDamage, SeePlayer, EnemyNotVisible, HearNoise, KilledBy, Trigger, Bu
  788.  
  789. /*-----------------------------------------------------*/
  790.  
  791. -// this function is used to set the camera to a set location and give it something to look at
  792. +function BeginState()
  793. +{
  794. + CameraType = CAM_FreeCam;
  795. + p.clientmessage("Camera switch to FreeCam state");
  796. + //AdamJD
  797. + fDistanceScalar = 1.0f;
  798. + rRotationStep = rot(0,0,0);
  799. + rSavedRotation = rotation;
  800. + bSyncPositionWithTarget = false;
  801. + bSyncRotationWithTarget = false;
  802. +}
  803.  
  804. -function Tick(float DeltaTime)
  805. +// this function is used to set the camera to a set location and give it something to look at
  806. +function Tick(float /*DeltaTime*/ fTimeDelta) //AdamJD
  807. {
  808. // PositionCamera(DeltaTime);
  809. - if (bInSpecialPause)
  810. +
  811. + if (bInSpecialPause)
  812. {
  813. - PositionCamera(DeltaTime);
  814. + //PositionCamera(DeltaTime);
  815. + SetCamera(/*CAM_Standard*/); //AdamJD
  816. }
  817. - else
  818. +
  819. + //not needed -AdamJD
  820. + // else
  821. + // {
  822. + // RestoreState(true);
  823. + // }
  824. +
  825. + //AdamJD
  826. + fMouseDeltaX = p.SmoothMouseX * fTimeDelta;
  827. + fMouseDeltaY = p.SmoothMouseY * fTimeDelta;
  828. +
  829. + //cap mouseDelta x -AdamJD
  830. + if( fMouseDeltaX > MAX_MOUSE_DELTA_X )
  831. {
  832. - RestoreState(true);
  833. + fMouseDeltaX = MAX_MOUSE_DELTA_X;
  834. }
  835. -}
  836. +
  837. + else if( fMouseDeltaX < MIN_MOUSE_DELTA_X )
  838. + {
  839. + fMouseDeltaX = MIN_MOUSE_DELTA_X;
  840. + }
  841. +
  842. + //cap mouseDelta y -AdamJD
  843. + if( fMouseDeltaY > MAX_MOUSE_DELTA_Y )
  844. + {
  845. + fMouseDeltaY = MAX_MOUSE_DELTA_Y;
  846. + }
  847. +
  848. + else if( fMouseDeltaY < MIN_MOUSE_DELTA_Y )
  849. + {
  850. + fMouseDeltaY = MIN_MOUSE_DELTA_Y;
  851. + }
  852. +//}
  853.  
  854. -function PositionCamera(float DeltaTime)
  855. -{
  856. - local rotator CurrentRotation;
  857. +//not needed -AdamJD
  858. +// function PositionCamera(float DeltaTime)
  859. +// {
  860. + /*local rotator CurrentRotation;
  861.  
  862. -// BaseHUD(p.MyHUD).Debugstring = string(victim.name);
  863. -// BaseHUD(p.MyHUD).DebugValx = SmoothMouseX;
  864. -// BaseHUD(p.MyHUD).DebugValy = SmoothMouseY;
  865. -// BaseHUD(p.MyHUD).DebugValz = p.aup;
  866. -// BaseHUD(p.MyHUD).DebugVala = p.TargetHitLocation.z;
  867. + BaseHUD(p.MyHUD).Debugstring = string(victim.name);
  868. + BaseHUD(p.MyHUD).DebugValx = SmoothMouseX;
  869. + BaseHUD(p.MyHUD).DebugValy = SmoothMouseY;
  870. + BaseHUD(p.MyHUD).DebugValz = p.aup;
  871. + BaseHUD(p.MyHUD).DebugVala = p.TargetHitLocation.z;
  872.  
  873. if (baseconsole(p.player.console).bForwardKeyDown)
  874. {
  875. @@ -3576,7 +3869,7 @@ function PositionCamera(float DeltaTime)
  876. {
  877. trackingpoint = (vect(0, 0, -25) >> Rotation);
  878. }
  879. -
  880. +
  881. if (baseconsole(p.player.console).bRotateRightKeyDown)
  882. {
  883. CurrentRotation = Rotation;
  884. @@ -3611,21 +3904,77 @@ function PositionCamera(float DeltaTime)
  885. movesmooth(trackingPoint);
  886.  
  887. bCollide = false;
  888. - SetCollisionState();
  889. -}
  890. -
  891. - function BeginState()
  892. + SetCollisionState();*/
  893. +
  894. + //AdamJD
  895. + if( baseconsole(p.player.console).bForwardKeyDown )
  896. {
  897. - CameraType = CAM_FreeCam;
  898. - p.clientmessage("Camera switch to FreeCam state");
  899. + vDestPosition += (vect(1, 0, 0) >> Rotation) * fMoveSpeed * fTimeDelta;
  900. }
  901. -
  902. +
  903. + else if( baseconsole(p.player.console).bBackKeyDown )
  904. + {
  905. + vDestPosition += (vect(-1, 0, 0) >> Rotation) * fMoveSpeed * fTimeDelta;
  906. + }
  907. +
  908. + if( baseconsole(p.player.console).bRightKeyDown )
  909. + {
  910. + vDestPosition += (vect(0, 1, 0) >> Rotation) * fMoveSpeed * fTimeDelta;
  911. + }
  912. +
  913. + else if( baseconsole(p.player.console).bLeftKeyDown )
  914. + {
  915. + vDestPosition += (vect(0, -1, 0) >> Rotation) * fMoveSpeed * fTimeDelta;
  916. + }
  917. +
  918. + if( baseconsole(p.player.console).bUpKeyDown )
  919. + {
  920. + vDestPosition += (vect(0, 0, 1) >> Rotation) * fMoveSpeed * fTimeDelta;
  921. +
  922. + }
  923. +
  924. + else if( baseconsole(p.player.console).bDownKeyDown )
  925. + {
  926. + vDestPosition += (vect(0, 0, -1) >> Rotation) * fMoveSpeed * fTimeDelta;
  927. + }
  928. +
  929. + //update rotation -AdamJD
  930. + if( baseconsole(p.player.console).bRotateRightKeyDown)
  931. + {
  932. + rDestRotation.Yaw += fRotSpeed * fTimeDelta;
  933. + }
  934. +
  935. + else if( baseconsole(p.player.console).bRotateLeftKeyDown)
  936. + {
  937. + rDestRotation.Yaw -= fRotSpeed * fTimeDelta;
  938. + }
  939. +
  940. + if( baseconsole(p.player.console).bRotateUpKeyDown)
  941. + {
  942. + rDestRotation.Pitch += fRotSpeed * fTimeDelta;
  943. + }
  944. +
  945. + else if( baseconsole(p.player.console).bRotateDownKeyDown)
  946. + {
  947. + rDestRotation.Pitch -= fRotSpeed * fTimeDelta;
  948. + }
  949. +
  950. + //add rotation from mouse input -AdamJD
  951. + rDestRotation.Yaw += fMouseDeltaX * fRotSpeed;
  952. + rDestRotation.Pitch += fMouseDeltaY * fRotSpeed;
  953. +
  954. + //smoothly update rotation -AdamJD
  955. + rCurrRotation += (rDestRotation - rCurrRotation ) * FMin( 1.0f, fRotTightness * fTimeDelta );
  956. + DesiredRotation = rCurrRotation;
  957. + SetRotation( DesiredRotation );
  958. +}
  959. begin:
  960. - loop:
  961. - sleep (0.0005);
  962. + //not needed -AdamJD
  963. + // loop:
  964. + // sleep (0.0005);
  965. // turntoward(p.StandardTarget);
  966.  
  967. - goto 'loop';
  968. + //goto 'loop';
  969. }
  970.  
  971. /*-----------------------------------------------------*/
  972. @@ -3666,15 +4015,15 @@ function PositionCamera(float DeltaTime)
  973. /* locRot.pitch = camPitch;
  974. smoothRotate(p.ViewRotation, locRot, deltatime);
  975. */
  976. - if(p.IsInState('playeraiming'))
  977. - {
  978. - cameraLock = true;
  979. + // if(p.IsInState('playeraiming')) //AdamJD
  980. + // {
  981. + //cameraLock = true; //AdamJD
  982. if (!bWasAiming)
  983. {
  984. bWasAiming = true;
  985. NextTargetCam();
  986. }
  987. - }
  988. + // }
  989. else
  990. {
  991. bWasAiming = false;
  992. @@ -3722,32 +4071,455 @@ function PositionCamera(float DeltaTime)
  993. goto 'loop';
  994. }
  995.  
  996. +//AdamJD functions (some are copied from the HP2 proto, I was really struggling...)
  997. +
  998. +//old mouse axis functions by me
  999. +/*
  1000. +function xMouseAxis(float DeltaTime)
  1001. +{
  1002. + local float rotatespeed;
  1003. +
  1004. + rotvalX = p.SmoothMouseX * DeltaTime;
  1005. + rotatespeed = 4.0f;
  1006. +
  1007. + CurrentRot.Yaw = rotvalX * rotatespeed;
  1008. +}
  1009. +
  1010. +function yMouseAxis(float DeltaTime)
  1011. +{
  1012. + local float rotatespeed;
  1013. +
  1014. + rotvalY = p.SmoothMouseY * DeltaTime;
  1015. + rotatespeed = 4.0f;
  1016. +
  1017. + CurrentRot.Pitch = rotvalY * rotatespeed;
  1018. +}
  1019. +*/
  1020. +
  1021. +//set up the camera settings
  1022. +function InitSettings(bool bSyncWithTargetPos, bool bSyncWithTargetRot)
  1023. +{
  1024. + fDistanceScalar = 1.0f;
  1025. + rRotationStep = rot(0,0,0);
  1026. + rSavedRotation = rotation;
  1027. + bSyncRotationWithTarget = bSyncWithTargetRot;
  1028. + bSyncPositionWithTarget = bSyncWithTargetPos;
  1029. + fDistanceScalarMin = DISTANCE_SCALAR_MIN;
  1030. + fCurrLookAtDistance = fLookAtDistance;
  1031. +}
  1032. +
  1033. +//set up cam target settings
  1034. +function InitTarget(actor A)
  1035. +{
  1036. + camTarget.SetAttachedTo(A);
  1037. + camTarget.SetOffset( vLookAtOffset );
  1038. +}
  1039. +
  1040. +//copied from the HP2 proto
  1041. +function InitRotation( rotator rot )
  1042. +{
  1043. + rDestRotation.yaw = rot.yaw & 0xFFFF;
  1044. + rDestRotation.pitch = rot.pitch & 0xFFFF;
  1045. + rDestRotation.roll = rot.roll & 0xFFFF;
  1046. + vForward = normal(vector(DesiredRotation));
  1047. + rCurrRotation = rDestRotation;
  1048. + DesiredRotation = rDestRotation;
  1049. + SetRotation( DesiredRotation );
  1050. +}
  1051. +
  1052. +//copied from the HP2 proto
  1053. +function InitPosition( vector pos, optional float deltatime )
  1054. +{
  1055. + vDestPosition = pos;
  1056. +
  1057. + //check camera collision with world -AdamJD
  1058. + CheckCollisionWithWorld();
  1059. +
  1060. + vCurrPosition = vDestPosition;
  1061. + SetLocation( vDestPosition );
  1062. +}
  1063. +
  1064. +//set up dest rotation
  1065. +function SetDestRotation( rotator newRot )
  1066. +{
  1067. + rDestRotation = newRot;
  1068. +}
  1069. +
  1070. +//set up position and rotation settings
  1071. +function InitPositionAndRotation( bool bSnapToNewPosAndRot, optional float deltatime )
  1072. +{
  1073. + if( bSnapToNewPosAndRot )
  1074. + {
  1075. + InitRotation( camTarget.rotation );
  1076. + InitPosition( camTarget.location+((vec(-fLookAtDistance,0,0))>>rDestRotation) );
  1077. + }
  1078. + else
  1079. + {
  1080. + SetDestRotation( CamTarget.rotation );
  1081. +
  1082. + vDestPosition = CamTarget.location + ((vec(-(fLookAtDistance),0,0))>>rDestRotation);
  1083. +
  1084. + //check camera collision with world
  1085. + CheckCollisionWithWorld();
  1086. + }
  1087. + rDestRotation.roll = 0;
  1088. + rCurrRotation.roll = 0;
  1089. +}
  1090. +
  1091. +//get mouse x axis
  1092. +function ApplyMouseXToDestYaw( float fTimeDelta)
  1093. +{
  1094. + fMouseDeltaX = p.SmoothMouseX * fTimeDelta;
  1095. +
  1096. + //cap the fMouseDeltaX
  1097. + if( fMouseDeltaX > MAX_MOUSE_DELTA_X )
  1098. + {
  1099. + fMouseDeltaX = MAX_MOUSE_DELTA_X;
  1100. + }
  1101. +
  1102. + else if( fMouseDeltaX < MIN_MOUSE_DELTA_X )
  1103. + {
  1104. + fMouseDeltaX = MIN_MOUSE_DELTA_X;
  1105. + }
  1106. +
  1107. + //update dest rotation
  1108. + rDestRotation.Yaw += fMouseDeltaX * fRotSpeed;
  1109. +}
  1110. +
  1111. +//get mouse y axis
  1112. +function ApplyMouseYToDestPitch( float fTimeDelta)
  1113. +{
  1114. + fMouseDeltaY = p.SmoothMouseY * fTimeDelta;
  1115. +
  1116. + //cap the fMouseDeltaY
  1117. + if( fMouseDeltaY > MAX_MOUSE_DELTA_Y )
  1118. + {
  1119. + fMouseDeltaY = MAX_MOUSE_DELTA_Y;
  1120. + }
  1121. +
  1122. + else if( fMouseDeltaY < MIN_MOUSE_DELTA_Y )
  1123. + {
  1124. + fMouseDeltaY = MIN_MOUSE_DELTA_Y;
  1125. + }
  1126. +
  1127. + //update dest rotation
  1128. + rDestRotation.Pitch += fMouseDeltaY * fRotSpeed;
  1129. +
  1130. + //cap the rDestRotation
  1131. + if( rDestRotation.Pitch > fCurrentMaxPitch )
  1132. + {
  1133. + rDestRotation.Pitch = fCurrentMaxPitch;
  1134. + }
  1135. +
  1136. + else if( rDestRotation.Pitch < fCurrentMinPitch )
  1137. + {
  1138. + rDestRotation.Pitch = fCurrentMinPitch;
  1139. + }
  1140. +}
  1141. +
  1142. +//copied from the HP2 proto
  1143. +function SetFinalRotation( rotator r )
  1144. +{
  1145. + r += rExtraRotation;
  1146. + rExtraRotation = rot(0,0,0);
  1147. +
  1148. + DesiredRotation = r;
  1149. + SetRotation( r );
  1150. +}
  1151. +
  1152. +//update rotation
  1153. +function UpdateRotation( float fTimeDelta )
  1154. +{
  1155. + local float fTravelScalar;
  1156. +
  1157. + rDestRotation += rRotationStep * fTimeDelta;
  1158. +
  1159. + //if true immediatly face target
  1160. + if( bSyncRotationWithTarget )
  1161. + {
  1162. + rCurrRotation = rotator(CamTarget.location - location);
  1163. + }
  1164. +
  1165. + else
  1166. + {
  1167. + //clamp travel scalar
  1168. + if( fRotTightness > 0.0f )
  1169. + {
  1170. + fTravelScalar = FMin( 1.0f, fRotTightness * fTimeDelta );
  1171. + }
  1172. +
  1173. + else
  1174. + {
  1175. + fTravelScalar = 1.0f;
  1176. + }
  1177. +
  1178. + rCurrRotation += ( rDestRotation - rCurrRotation ) * fTravelScalar;
  1179. + }
  1180. +
  1181. + //update vForward
  1182. + vForward = normal(vector(rCurrRotation));
  1183. +
  1184. + SetFinalRotation( rCurrRotation );
  1185. +}
  1186. +
  1187. +//update position
  1188. +function UpdatePosition( float fTimeDelta )
  1189. +{
  1190. + local float fTravelScalar;
  1191. +
  1192. + if( bSyncPositionWithTarget )
  1193. + {
  1194. + vDestPosition = CamTarget.location + ((vec(-(fCurrLookAtDistance ),0,0)) >> rCurrRotation );
  1195. + }
  1196. +
  1197. + //check camera collision with world -AdamJD
  1198. + CheckCollisionWithWorld();
  1199. +
  1200. + //clamp travel scalar
  1201. + if( fMoveTightness > 0.0f )
  1202. + {
  1203. + fTravelScalar = FMin( 1.0f, fMoveTightness * fTimeDelta );
  1204. + }
  1205. +
  1206. + else
  1207. + {
  1208. + fTravelScalar = 1.0f;
  1209. + }
  1210. +
  1211. + vCurrPosition += ( vDestPosition - vCurrPosition ) * fTravelScalar;
  1212. + SetLocation( vCurrPosition );
  1213. +}
  1214. +
  1215. +//update distance scalar
  1216. +function UpdateDistanceScalar( float fTimeDelta )
  1217. +{
  1218. + local float fDestLookAtDistance;
  1219. +
  1220. + if( rCurrRotation.Pitch > fPitchMovingInThreshold )
  1221. + {
  1222. + //calculate distance scalar
  1223. + fDistanceScalar = 1.0f - ( rCurrRotation.Pitch / fPitchMovingInSpread );
  1224. +
  1225. + //stop camera at harry's head
  1226. + if( fDistanceScalar < fDistanceScalarMin)
  1227. + {
  1228. + fDistanceScalar = fDistanceScalarMin;
  1229. + }
  1230. +
  1231. + fDestLookAtDistance = fLookAtDistance * fDistanceScalar;
  1232. + }
  1233. + else
  1234. + {
  1235. + fDistanceScalar = 1.0f;
  1236. + fDestLookAtDistance = fLookAtDistance;
  1237. + }
  1238. +
  1239. + //collision stuff
  1240. + if( fCurrLookAtDistance < fDestLookAtDistance )
  1241. + {
  1242. + fCurrLookAtDistance += (fDestLookAtDistance - fCurrLookAtDistance ) * FMin( 1.0f, fMoveBackTightness * fTimeDelta );
  1243. + }
  1244. + else
  1245. + {
  1246. + fCurrLookAtDistance = fDestLookAtDistance;
  1247. + }
  1248. +}
  1249. +
  1250. +//finally add collision to camera
  1251. +function bool CheckCollisionWithWorld()
  1252. +{
  1253. + local vector HitLocation;
  1254. + local vector HitNormal;
  1255. + local actor HitActor;
  1256. + local vector LookAtPoint;
  1257. + local vector LookFromPoint;
  1258. + local vector vCusionFromWorld;
  1259. +
  1260. + LookAtPoint = CamTarget.location;
  1261. +
  1262. + //do a trace with the line from the target actor's location to cam targets location
  1263. + if( CamTarget.aAttachedTo != None && (CamTarget.vOffset.x != 0 || CamTarget.vOffset.y != 0 || CamTarget.vOffset.z != 0) )
  1264. + {
  1265. + //make sure that CamTarget.location is inside the level
  1266. + HitActor = Trace( HitLocation, HitNormal, camTarget.Location, camTarget.aAttachedTo.location, false );
  1267. + if( HitActor != None && HitActor.IsA('levelInfo') )
  1268. + {
  1269. + //the cam target has hit something
  1270. + LookAtPoint = HitLocation + ( normal(camTarget.aAttachedTo.location - HitLocation) * 5.0f) + HitNormal;
  1271. + }
  1272. + }
  1273. +
  1274. + vCusionFromWorld = normal(LookAtPoint-vDestPosition) * 5.0f;
  1275. + LookFromPoint = vDestPosition - vCusionFromWorld;
  1276. +
  1277. + foreach TraceActors(class'actor', HitActor, HitLocation, HitNormal, LookFromPoint, LookAtPoint )
  1278. + {
  1279. + if( HitActor == Owner )
  1280. + {
  1281. + continue;
  1282. + }
  1283. +
  1284. + if( HitActor.IsA('levelInfo') )
  1285. + {
  1286. + if(!IsInState('BossState')) //stop camera going right above Harrys head when hitting something in the boss state -AdamJD
  1287. + {
  1288. + //move camera a bit away from the hit location
  1289. + vDestPosition = HitLocation + vCusionFromWorld;
  1290. + fCurrLookAtDistance = vsize(vDestPosition - LookAtPoint);
  1291. +
  1292. + return true;
  1293. + }
  1294. + }
  1295. + }
  1296. +
  1297. + return false;
  1298. +}
  1299. +
  1300. /*-----------------------------------------------------*/
  1301.  
  1302. state Standardstate
  1303. {
  1304. -ignores takeDamage, SeePlayer, EnemyNotVisible, HearNoise, KilledBy, Trigger, Bump, HitWall, HeadZoneChange, FootZoneChange, ZoneChange, Falling, WarnTarget, Died, LongFall, PainTimer;
  1305. + ignores takeDamage, SeePlayer, EnemyNotVisible, HearNoise, KilledBy, Trigger, Bump, HitWall, HeadZoneChange, FootZoneChange, ZoneChange, Falling, WarnTarget, Died, LongFall, PainTimer;
  1306.  
  1307.  
  1308.  
  1309. /*-----------------------------------------------------*/
  1310.  
  1311. -// this function is used to set the camera to a set location and give it something to look at
  1312. + function BeginState()
  1313. + {
  1314. + //org not needed retail code -AdamJD
  1315. + // CameraType = CAM_Standard;
  1316. + // p.clientmessage("Camera switch to Standard state");
  1317. + // p.StandardTarget.TargetOffset = vect(75, 0 ,50);
  1318. + //SetPhysics(PHYS_NONE);
  1319. + // CameraHeight = 80.000000;
  1320. +// // CameraHeight = 50.000000;
  1321. + // CameraDistance = 150.000;
  1322. +// //CameraAimOffsetState = vect(80, 0, 0);
  1323. +// //CameraAimOffsetState = vect(40, 0, 0);
  1324. + // CameraAimOffsetState = vect(0, 0, 0);
  1325. +// CameraOffset = vect(140, -100, 0);
  1326.  
  1327. -function Tick(float DeltaTime)
  1328. -{
  1329. - local vector tpoint;
  1330. + //Init the camera -AdamJD
  1331. + InitSettings(true, false);
  1332. + InitTarget(p);
  1333. + InitPositionAndRotation(true);
  1334. + }
  1335.  
  1336. - if (bInSpecialPause)
  1337. + function EndState()
  1338. {
  1339. - SaveState();
  1340. - gotostate('FreeCamState');
  1341. +// SetPhysics(PHYS_ROTATING);
  1342. +
  1343. + //AdamJD
  1344. + rSavedRotation = rCurrRotation;
  1345. }
  1346. - else
  1347. +
  1348. + // this function is used to set the camera to a set location and give it something to look at
  1349. + function Tick(float DeltaTime)
  1350. {
  1351. - PositionCamera(DeltaTime);
  1352. + local vector tpoint;
  1353. +
  1354. + local float camTotal;
  1355. +
  1356. + local vector PositionDif;
  1357. + local bool bMoved;
  1358. + local rotator viewrot;
  1359. + local float PitchDif;
  1360. +
  1361. + //bCollide = true;
  1362. +
  1363. + /* locRot.pitch = camPitch;
  1364. + smoothRotate(p.ViewRotation, locRot, deltatime);
  1365. + */
  1366. +
  1367. + // if(p.IsInState('playeraiming')) //AdamJD
  1368. + // {
  1369. + //cameraLock = true; //AdamJD
  1370. + //now not needed -AdamJD
  1371. + /*
  1372. + if (!bWasAiming)
  1373. + {
  1374. + bWasAiming = true;
  1375. + NextTargetCam();
  1376. + }
  1377. + //}
  1378. + else
  1379. + {
  1380. + bWasAiming = false;
  1381. + }
  1382. +
  1383. + GeneralStationaryModeCamera(deltatime, true);
  1384. +
  1385. + StoreMove();
  1386. +
  1387. + CheckCollisionState(deltatime);
  1388. +
  1389. + //@PAB remove when you wish to go back to a colliding camera
  1390. + SetCollisionState();
  1391. +
  1392. + Check to see if the camera should change its yaw
  1393. +
  1394. + bTurnToward = true;
  1395. +
  1396. + else
  1397. + {
  1398. + PositionCamera(DeltaTime);
  1399. + }
  1400. +
  1401. + tpoint = p.standardTarget.targetOffset;
  1402. + tpoint = tpoint >> p.rotation;
  1403. + tpoint += p.location;
  1404. +
  1405. + // if (!p.IsInState('playeraiming')) //AdamJD
  1406. + // {
  1407. + SetRotation(rotator(tpoint - location));
  1408. + DesiredRotation = rotator(tpoint - location);
  1409. + ViewRotation = rotator(tpoint - location);
  1410. + // }*/
  1411. +
  1412. + //retail commented out code
  1413. + /*SetRotation(rotator(p.StandardTarget.location - location));
  1414. + DesiredRotation = rotator(p.StandardTarget.location - location);
  1415. + ViewRotation = rotator(p.StandardTarget.location - location);*/
  1416. +
  1417. + //apply mouse input to dest rotation -AdamJD
  1418. + ApplyMouseXToDestYaw( DeltaTime);
  1419. + ApplyMouseYToDestPitch( DeltaTime );
  1420. +
  1421. + //update rotation -AdamJD
  1422. + UpdateRotation( DeltaTime );
  1423. +
  1424. + //update position -AdamJD
  1425. + UpdatePosition( DeltaTime );
  1426. +
  1427. + //update distance scalar -AdamJD
  1428. + UpdateDistanceScalar( DeltaTime );
  1429. +
  1430. + //goto free cam state if in special pause -AdamJD
  1431. + if (bInSpecialPause)
  1432. + {
  1433. + SaveState();
  1434. + gotostate('FreeCamState');
  1435. + }
  1436. }
  1437.  
  1438. + begin:
  1439. + //not needed -AdamJD
  1440. + /*
  1441. + loop:
  1442. + sleep (0.0005);
  1443. + if (bTurnToward)
  1444. + {
  1445. + if (p.IsInState('playeraiming'))
  1446. + {
  1447. + turntoward(p.StandardTarget);
  1448. + }
  1449. + }
  1450. + goto 'loop';
  1451. + */
  1452. +//}
  1453. +
  1454. +//retail commented out code -AdamJD
  1455. // if (p.IsInState('playeraiming'))
  1456. // {
  1457. // tpoint = vect(0, 0, 50);
  1458. @@ -3785,25 +4557,10 @@ function Tick(float DeltaTime)
  1459. // ViewRotation = rotator(p.location + tpoint - location);
  1460. // }
  1461. // }
  1462. -
  1463. -
  1464. - tpoint = p.standardTarget.targetOffset;
  1465. - tpoint = tpoint >> p.rotation;
  1466. - tpoint += p.location;
  1467. -
  1468. - if (!p.IsInState('playeraiming'))
  1469. - {
  1470. - SetRotation(rotator(tpoint - location));
  1471. - DesiredRotation = rotator(tpoint - location);
  1472. - ViewRotation = rotator(tpoint - location);
  1473. - }
  1474. -
  1475. -/* SetRotation(rotator(p.StandardTarget.location - location));
  1476. - DesiredRotation = rotator(p.StandardTarget.location - location);
  1477. - ViewRotation = rotator(p.StandardTarget.location - location);*/
  1478. }
  1479.  
  1480. -function PositionCamera(float DeltaTime)
  1481. +//old retail function (moved code to StandardState) -AdamJD
  1482. +/*function PositionCamera(float DeltaTime)
  1483. {
  1484. local float camTotal;
  1485.  
  1486. @@ -3811,21 +4568,22 @@ function PositionCamera(float DeltaTime)
  1487. local bool bMoved;
  1488. local rotator viewrot;
  1489. local float PitchDif;
  1490. -
  1491. - bCollide = true;
  1492. +
  1493. + bCollide = true;*/
  1494.  
  1495. /* locRot.pitch = camPitch;
  1496. smoothRotate(p.ViewRotation, locRot, deltatime);
  1497. */
  1498. - if(p.IsInState('playeraiming'))
  1499. - {
  1500. - cameraLock = true;
  1501. + //AdamJD
  1502. +/* // if(p.IsInState('playeraiming')) //AdamJD
  1503. + // {
  1504. + //cameraLock = true; //AdamJD
  1505. if (!bWasAiming)
  1506. {
  1507. bWasAiming = true;
  1508. NextTargetCam();
  1509. }
  1510. - }
  1511. + //}
  1512. else
  1513. {
  1514. bWasAiming = false;
  1515. @@ -3867,17 +4625,17 @@ function PositionCamera(float DeltaTime)
  1516.  
  1517. begin:
  1518. loop:
  1519. - sleep (0.0005);
  1520. - if (bTurnToward)
  1521. + sleep (0.0005);*/
  1522. + //AdamJD
  1523. + /*if (bTurnToward)
  1524. {
  1525. if (p.IsInState('playeraiming'))
  1526. {
  1527. turntoward(p.StandardTarget);
  1528. }
  1529. - }
  1530. - goto 'loop';
  1531. -}
  1532. -
  1533. + }*/
  1534. + // goto 'loop';
  1535. +// }
  1536.  
  1537. /*-----------------------------------------------------*/
  1538.  
  1539. @@ -4001,13 +4759,40 @@ moveLoop:
  1540.  
  1541. defaultproperties
  1542. {
  1543. - cameraLock=True
  1544. - lockBias=1
  1545. - bUseStrafing=True
  1546. - bHidden=True
  1547. - bCanMoveInSpecialPause=True
  1548. - CollisionRadius=0.1
  1549. - bBlockActors=False
  1550. - bBlockPlayers=False
  1551. - RotationRate=(Pitch=20000,Yaw=20000,Roll=20000)
  1552. + bRotateToDesired=false
  1553. +
  1554. + bHidden=true
  1555. + bBlockActors=false
  1556. + bBlockPlayers=false
  1557. +
  1558. + bCanMoveInSpecialPause=true
  1559. +
  1560. + //retail not needed defaults -AdamJD
  1561. + //cameraLock=True
  1562. + //lockBias=1
  1563. + //bUseStrafing=True
  1564. + //bHidden=True
  1565. + //bCanMoveInSpecialPause=True
  1566. + //CollisionRadius=0.1
  1567. + //bBlockActors=False
  1568. + //bBlockPlayers=False
  1569. + //RotationRate=(Pitch=20000,Yaw=20000,Roll=20000)
  1570. +
  1571. + //AdamJD defaults
  1572. + bSyncPositionWithTarget=true
  1573. +
  1574. + fCurrentMinPitch=-14000.0f
  1575. + fCurrentMaxPitch=14000.0f
  1576. +
  1577. + fDistanceScalar=1.0f
  1578. +
  1579. + fMoveBackTightness=2.5f
  1580. +
  1581. + //standard cam settings -AdamJD
  1582. + vLookAtOffset=(X=0,Y=0,Z=55.0f)
  1583. + fLookAtDistance=128.0f
  1584. + fRotTightness=8.0f
  1585. + fRotSpeed=4.0f
  1586. + fMoveTightness=0.0f
  1587. + fMoveSpeed=0.0f
  1588. }
  1589. diff --git a/HPBase/Classes/CamTarget.uc b/HPBase/Classes/CamTarget.uc
  1590. index 3c3141d..f28b4a6 100644
  1591. --- a/HPBase/Classes/CamTarget.uc
  1592. +++ b/HPBase/Classes/CamTarget.uc
  1593. @@ -3,17 +3,95 @@
  1594. //=============================================================================
  1595. class CamTarget expands Pawn;
  1596.  
  1597. -var baseharry p;
  1598. -var vector targetOffset;
  1599. -var vector moveTarget;
  1600. -var float previousYaw;
  1601. +//Edited by- AdamJD (edited code will have AdamJD by it)
  1602.  
  1603. +var vector targetOffset;
  1604. var rotator BossCamBox;
  1605.  
  1606. -var bool bInPlayerAiming;
  1607. -var vector OldOffset;
  1608. -var vector OldRecTargetLocation;
  1609. +//old retail vars -AdamJD
  1610. +//var baseharry p;
  1611. +//var vector moveTarget;
  1612. +//var float previousYaw;
  1613. +//var bool bInPlayerAiming;
  1614. +//var vector OldOffset;
  1615. +//var vector OldRecTargetLocation;
  1616. +
  1617. +//AdamJD vars
  1618. +var actor aAttachedTo; //actor that the target is attached to
  1619. +var vector vOffset;
  1620. +var bool bRelative;
  1621. +var BaseCam Cam;
  1622. +var Target rectarget;
  1623. +
  1624. +function PostBeginPlay()
  1625. +{
  1626. + foreach AllActors(class'Target', rectarget)
  1627. + {
  1628. + break;
  1629. + }
  1630. +
  1631. + rectarget.victim.eVulnerableToSpell=SPELL_None;
  1632. +}
  1633. +
  1634. +//set the cam target offset -AdamJD
  1635. +function SetOffset ( vector v )
  1636. +{
  1637. + vOffset = v;
  1638. + UpdateOrientation();
  1639. +}
  1640. +
  1641. +//set the attached to actor -AdamJD
  1642. +function SetAttachedTo(actor a)
  1643. +{
  1644. + aAttachedTo = a;
  1645. + UpdateOrientation();
  1646. +}
  1647. +
  1648. +//update position and rotation -AdamJD
  1649. +function UpdateOrientation()
  1650. +{
  1651. + local vector delta;
  1652. +
  1653. + if( aAttachedTo != None )
  1654. + {
  1655. + delta = vec(0, 0, 0); //focus cam target on Harry
  1656. +
  1657. + //update rotation
  1658. + SetNewRotation( aAttachedTo.rotation );
  1659. +
  1660. + //update position
  1661. + if( bRelative )
  1662. + {
  1663. + SetLocation( aAttachedTo.location + delta + (vOffset >> rotation) );
  1664. + }
  1665. +
  1666. + else
  1667. + {
  1668. + SetLocation( aAttachedTo.location + delta + vOffset);
  1669. + }
  1670. + }
  1671. +}
  1672. +
  1673. +//set up the new rotation -AdamJD
  1674. +function SetNewRotation( rotator rot )
  1675. +{
  1676. + DesiredRotation = rot;
  1677. + DesiredRotation.Yaw = DesiredRotation.Yaw & 0xFFFF;
  1678. + DesiredRotation.Pitch = DesiredRotation.Pitch & 0xFFFF;
  1679. + DesiredRotation.Roll = DesiredRotation.Roll & 0xFFFF;
  1680. + SetRotation( DesiredRotation );
  1681. +}
  1682. +
  1683. +//make sure the SetAttachedTo actor gets ticked -AdamJD
  1684. +event Tick(optional float fTimeDelta)
  1685. +{
  1686. + Super.Tick( fTimeDelta );
  1687. + SetAttachedTo(aAttachedTo);
  1688. + UpdateOrientation();
  1689. +}
  1690.  
  1691. +//old retail code -AdamJD
  1692. +/*
  1693. auto state seeking
  1694. {
  1695. function startup()
  1696. @@ -34,8 +112,7 @@ auto state seeking
  1697. function touch (actor other)
  1698. {
  1699. }
  1700. -
  1701. -
  1702. +
  1703. function HitWall (vector HitNormal, actor Wall)
  1704. {
  1705. }
  1706. @@ -53,7 +130,7 @@ auto state seeking
  1707. {
  1708.  
  1709. local vector tloc;
  1710. - local vector offset;
  1711. + local vector offset;*/
  1712.  
  1713. /* if (p.IsInState('PlayerAiming'))
  1714. {
  1715. @@ -73,18 +150,18 @@ auto state seeking
  1716. }
  1717. else
  1718. {*/
  1719. - if (bInPlayerAiming)
  1720. - {
  1721. + // if (bInPlayerAiming)
  1722. + // {
  1723. /* TargetOffset = Normal(OldRecTargetLocation - p.cam.Location) * 100;
  1724. TargetOffset.x = OldOffset.x;
  1725. TargetOffset.y = OldOffset.y;
  1726. TargetOffset.z += 50; // Offset in the battle cam aim offset
  1727. */
  1728. - bInPlayerAiming = false;
  1729. - }
  1730. + // bInPlayerAiming = false;
  1731. + // }
  1732.  
  1733. - if (p.bStationary)
  1734. - {
  1735. + // if (p.bStationary)
  1736. + // {
  1737. /* if(p.SmoothMouseY>64 && targetOffset.z < 150)
  1738. {
  1739. targetOffset.z=targetOffset.z+2;
  1740. @@ -95,7 +172,7 @@ auto state seeking
  1741. targetOffset.z=targetOffset.z-2;
  1742. }*/
  1743.  
  1744. - if((p.SmoothMouseY < -64) && targetOffset.z > 0)
  1745. + /*if((p.SmoothMouseY < -64) && targetOffset.z > 0)
  1746. {
  1747. targetOffset.z = targetOffset.z - 3;
  1748.  
  1749. @@ -151,7 +228,7 @@ auto state seeking
  1750. {
  1751. targetOffset.z=targetOffset.z-2;
  1752. }
  1753. -// }
  1754. +// }*/
  1755.  
  1756. /* BaseHUD(p.MyHUD).DebugValx = tloc.x;
  1757. BaseHUD(p.MyHUD).DebugValy = tloc.y;
  1758. @@ -162,12 +239,12 @@ auto state seeking
  1759. BaseHUD(p.MyHUD).DebugValz2 = OldRecTargetLocation.z;
  1760. */
  1761.  
  1762. - offset=tloc-location;
  1763. + /*offset=tloc-location;
  1764.  
  1765. - if (p.IsInState('PlayerAiming'))
  1766. - {
  1767. -// log("Now " $location.x $" " $location.y $" " $location.z);
  1768. -// log("Rectarget " $p.rectarget.location.x $" " $p.rectarget.location.y $" " $p.rectarget.location.z);
  1769. + // if (p.IsInState('PlayerAiming'))
  1770. + // {
  1771. + //log("Now " $location.x $" " $location.y $" " $location.z);
  1772. + //log("Rectarget " $p.rectarget.location.x $" " $p.rectarget.location.y $" " $p.rectarget.location.z);
  1773.  
  1774. if (vsize(offset) > 30)
  1775. {
  1776. @@ -175,7 +252,7 @@ auto state seeking
  1777. // SetLocation(offset + location);
  1778. movesmooth(offset);
  1779. }
  1780. - }
  1781. + //}
  1782. else
  1783. {
  1784. // SetLocation(offset + location);
  1785. @@ -261,14 +338,14 @@ state BossFollow
  1786. if (vsize(offset) > 200)
  1787. {
  1788. offset = (vsize(offset) - 200) * normal(offset);
  1789. - movesmooth(offset);
  1790. + movesmooth(offset);*/
  1791.  
  1792. /* BaseHUD(p.MyHUD).DebugValX = offset.x;
  1793. BaseHUD(p.MyHUD).DebugValY = offset.y;
  1794. BaseHUD(p.MyHUD).DebugValZ = offset.z;*/
  1795. - }
  1796. - }
  1797. - else if (abs(ViewDif.Yaw) > BossCamBox.yaw )
  1798. + // }
  1799. + // }
  1800. + /*else if (abs(ViewDif.Yaw) > BossCamBox.yaw )
  1801. {
  1802. if (ViewDif.Yaw > 0 && ViewDif.Yaw < 0x8000)
  1803. {
  1804. @@ -281,28 +358,28 @@ state BossFollow
  1805. ViewDif.pitch = 0;
  1806. ViewDif.roll = 0;
  1807. ViewDif = Rotator(p.BossTarget.Location - p.location) - ViewDif;
  1808. - tloc = vector(ViewDif) * VSize(p.BossTarget.Location - p.location) + p.Location;
  1809. + tloc = vector(ViewDif) * VSize(p.BossTarget.Location - p.location) + p.Location;*/
  1810.  
  1811. /* BaseHUD(p.MyHUD).DebugValX = tloc.x;
  1812. BaseHUD(p.MyHUD).DebugValY = tloc.y;
  1813. BaseHUD(p.MyHUD).DebugValZ = tloc.z;
  1814. */
  1815. - offset=tloc-location;
  1816. + // offset=tloc-location;
  1817.  
  1818. - if (vsize(offset) > 200)
  1819. - {
  1820. - offset = (vsize(offset) - 200) * normal(offset);
  1821. - SetLocation(offset + location);
  1822. + // if (vsize(offset) > 200)
  1823. + // {
  1824. + // offset = (vsize(offset) - 200) * normal(offset);
  1825. + // SetLocation(offset + location);
  1826. // movesmooth(offset);
  1827.  
  1828. /* BaseHUD(p.MyHUD).DebugValX = offset.x;
  1829. BaseHUD(p.MyHUD).DebugValY = offset.y;
  1830. BaseHUD(p.MyHUD).DebugValZ = offset.z;*/
  1831. - }
  1832. - }
  1833. - }
  1834. + // }
  1835. + // }
  1836. + // }
  1837.  
  1838. - begin:
  1839. + /*begin:
  1840. startup();
  1841.  
  1842.  
  1843. @@ -349,7 +426,7 @@ state Free
  1844. goto 'seekloop';
  1845.  
  1846.  
  1847. -}
  1848. +}*/
  1849.  
  1850. defaultproperties
  1851. {
  1852. diff --git a/HPBase/Classes/SpellLearnTrigger.uc b/HPBase/Classes/SpellLearnTrigger.uc
  1853. index 68e027f..b192ced 100644
  1854. --- a/HPBase/Classes/SpellLearnTrigger.uc
  1855. +++ b/HPBase/Classes/SpellLearnTrigger.uc
  1856. @@ -4,6 +4,8 @@
  1857.  
  1858. class SpellLearnTrigger extends Trigger;
  1859.  
  1860. +//Edited by- AdamJD (edited code will have AdamJD by it)
  1861. +
  1862. var(Spells) class<BaseSpell> Spell;
  1863.  
  1864. var(Spells) class<SpellLearnFX> LearnFXClass[3];
  1865. @@ -111,73 +113,93 @@ function Trigger(actor Other, pawn EventInstigator)
  1866. break;
  1867. }
  1868. }
  1869. +
  1870. + //if holding down the spacebar then skip the spell learning -AdamJD
  1871. + if (Player.bSkipKeyPressed == true)
  1872. + {
  1873. + //copied from code near the end of this script -AdamJD
  1874. + DestroyWand();
  1875. + DestroyTemplate();
  1876. + baseHUD(player.myHUD).DestroyPopup();
  1877.  
  1878. - Cam = Player.Cam;
  1879. - Cam.SaveState();
  1880. - SpellGesture = Spell.default.Gesture;
  1881. + player.iLevelReached = LessonLevel;
  1882. + player.iLessonPoints = TotalHousePointScore;
  1883.  
  1884. - // Test
  1885. -/* for (i = 0; i < int(SpellGesture.Points); i ++)
  1886. - {
  1887. - log("Spell lesson points " $i $" of " $int(SpellGesture.Points) $SpellGesture.Points[i].x $SpellGesture.Points[i].y);
  1888. + Destroy();
  1889. +
  1890. + Player.CutRelease(); //makes skipping the spell learning smooth -AdamJD
  1891. }
  1892. -*/
  1893. - bSaveSmoothing = Player.bMaxMouseSmoothing;
  1894. - Player.bMaxMouseSmoothing = false;
  1895. -
  1896. - // We can't fail this lesson, add the spell to Harry now
  1897. - BaseWand(Player.Weapon).AddSpell(Spell);
  1898. -
  1899. - // Put player in right state.
  1900. - BaseWand(Player.Weapon).SelectSpell(Spell);
  1901. -
  1902. - Player.gotoState('SpellLearning');
  1903. -
  1904. - // Halt the player.
  1905. - Player.Velocity = vect(0,0,0);
  1906. - Player.Acceleration = vect(0,0,0);
  1907. - Player.PlayAnim('breathe');
  1908. -
  1909. - TempActor = Spawn(class'camtarget');
  1910. - TempActor.GotoState('Free');
  1911. - TempActor.SetLocation(Location + (vec(TemplateDist,0,0) >> Rotation));
  1912. - Cam.DirectionActor = TempActor;
  1913. - // Change the camera mode.
  1914. - Cam.PositionActor = none;
  1915. - CameraDist = 20; // Hard code for the mo
  1916. - Cam.GotoState('CutState');
  1917. - Cam.SetLocation(Location + (vec(CameraDist,0,0) >> Rotation));
  1918. - Cam.SetRotation(rotator(TempActor.Location - Location));
  1919. +
  1920. + //otherwise carry on with the spell learning as normal -AdamJD
  1921. + else
  1922. + {
  1923. + Cam = Player.Cam;
  1924. + Cam.SaveState();
  1925. + SpellGesture = Spell.default.Gesture;
  1926.  
  1927. - // Init spell level.
  1928. - SpellLevel = 0;
  1929. + // Test
  1930. + /* for (i = 0; i < int(SpellGesture.Points); i ++)
  1931. + {
  1932. + log("Spell lesson points " $i $" of " $int(SpellGesture.Points) $SpellGesture.Points[i].x $SpellGesture.Points[i].y);
  1933. + }
  1934. + */
  1935. + bSaveSmoothing = Player.bMaxMouseSmoothing;
  1936. + Player.bMaxMouseSmoothing = false;
  1937.  
  1938. - TemplateDrawTime = DrawTime / 4;
  1939. + // We can't fail this lesson, add the spell to Harry now
  1940. + BaseWand(Player.Weapon).AddSpell(Spell);
  1941.  
  1942. - LessonLevel = 0;
  1943. - TotalHousePointScore = 0;
  1944. + // Put player in right state.
  1945. + BaseWand(Player.Weapon).SelectSpell(Spell);
  1946.  
  1947. - LessonBlackboard = spawn(class'spellblackboard',
  1948. - [SpawnLocation] Location + (vec(TemplateDist + 50, 0, 0) >> Rotation) );
  1949. + Player.gotoState('SpellLearning');
  1950.  
  1951. -/*
  1952. - if (LessonBlackboard == none)
  1953. - {
  1954. - log("Blackboard is none");
  1955. - }
  1956. - else
  1957. - {
  1958. - log("Blackboard is OK");
  1959. - }
  1960. -*/
  1961. + // Halt the player.
  1962. + Player.Velocity = vect(0,0,0);
  1963. + Player.Acceleration = vect(0,0,0);
  1964. + Player.PlayAnim('breathe');
  1965.  
  1966. - if (Teacher != none)
  1967. - {
  1968. - Teacher.GotoState('idle');
  1969. - }
  1970. + TempActor = Spawn(class'camtarget');
  1971. + TempActor.GotoState('Free');
  1972. + TempActor.SetLocation(Location + (vec(TemplateDist,0,0) >> Rotation));
  1973. + Cam.DirectionActor = TempActor;
  1974. + // Change the camera mode.
  1975. + Cam.PositionActor = none;
  1976. + CameraDist = 20; // Hard code for the mo
  1977. + Cam.GotoState('CutState');
  1978. + Cam.SetLocation(Location + (vec(CameraDist,0,0) >> Rotation));
  1979. + Cam.SetRotation(rotator(TempActor.Location - Location));
  1980. +
  1981. + // Init spell level.
  1982. + SpellLevel = 0;
  1983. +
  1984. + TemplateDrawTime = DrawTime / 4;
  1985. +
  1986. + LessonLevel = 0;
  1987. + TotalHousePointScore = 0;
  1988. +
  1989. + LessonBlackboard = spawn(class'spellblackboard',
  1990. + [SpawnLocation] Location + (vec(TemplateDist + 50, 0, 0) >> Rotation) );
  1991. +
  1992. + /*
  1993. + if (LessonBlackboard == none)
  1994. + {
  1995. + log("Blackboard is none");
  1996. + }
  1997. + else
  1998. + {
  1999. + log("Blackboard is OK");
  2000. + }
  2001. + */
  2002.  
  2003. - bFirstTime = true;
  2004. - gotoState('Template', 'Init');
  2005. + if (Teacher != none)
  2006. + {
  2007. + Teacher.GotoState('idle');
  2008. + }
  2009. +
  2010. + bFirstTime = true;
  2011. + gotoState('Template', 'Init');
  2012. + }
  2013. }
  2014.  
  2015. function TriggerNext()
  2016. diff --git a/HPBase/Classes/Target.uc b/HPBase/Classes/Target.uc
  2017. index 57f1993..a4fdc8b 100644
  2018. --- a/HPBase/Classes/Target.uc
  2019. +++ b/HPBase/Classes/Target.uc
  2020. @@ -1,9 +1,11 @@
  2021. //===============================================================================
  2022. -// [FlowerVase]
  2023. +// [Target]
  2024. //===============================================================================
  2025.  
  2026. class target extends ParticleFX;
  2027.  
  2028. +//Edited by- AdamJD (edited code will have AdamJD by it)
  2029. +
  2030. #exec MESH MODELIMPORT MESH=ModTarget1Mesh MODELFILE=models\ModTarget1.PSK LODSTYLE=10
  2031. #exec MESH ORIGIN MESH=ModTarget1Mesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0
  2032. #exec ANIM IMPORT ANIM=ModTarget1Anims ANIMFILE=models\ModTarget1.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1
  2033. @@ -47,6 +49,14 @@ var float TargetSize;
  2034.  
  2035. var bool bNoMove;
  2036.  
  2037. +//AdamJD vars
  2038. +var vector vGestureOffset;
  2039. +var bool bIsLockedOn;
  2040. +var bool bInvisibleCursor;
  2041. +var float fLOS_Distance;
  2042. +
  2043. +
  2044. +
  2045. auto state seeking
  2046. {
  2047.  
  2048. @@ -64,9 +74,9 @@ auto state seeking
  2049. break;
  2050. }
  2051. }
  2052. - TargetCounter = 0;
  2053. + TargetCounter = 0;
  2054.  
  2055. - bNoMove = true;
  2056. + //bNoMove = true; //not needed -AdamJD
  2057.  
  2058. // PlaySound(sound'HPSounds.magic_sfx.spell_aim');
  2059.  
  2060. @@ -86,25 +96,25 @@ auto state seeking
  2061. TargetRotation = rotator(TraceEnd);
  2062. TargetPitch = TargetRotation.Pitch;
  2063.  
  2064. -// TargetPitch = 0;
  2065. +// TargetPitch = 0;
  2066. TargetYaw = 0;
  2067. }
  2068.  
  2069. // @PAB added target glow
  2070.  
  2071. -/* if(baseWand(p.weapon).curSpell != class'spelldud')
  2072. - {*/
  2073. + //if(baseWand(p.weapon).curSpell != class'spelldud')
  2074. + //{
  2075. targetGlowObjRed=spawn(class'targetglow',,,Location);
  2076. targetGlowObjRed.SetColour(255, 0, 0);
  2077. targetGlowObjBlue=spawn(class'targetglow',,,Location);
  2078. targetGlowObjBlue.SetColour(0, 255, 255);
  2079. -/* }*/
  2080. + //}
  2081.  
  2082. /* if (SpellGesture != none)
  2083. {
  2084. log("Spell " $string(SpellGesture.Name));
  2085. - }
  2086. -*/
  2087. + }*/
  2088. +
  2089. // AE:
  2090. StopEffect();
  2091. }
  2092. @@ -126,8 +136,8 @@ auto state seeking
  2093. setTarget(Deltatime);
  2094. }
  2095.  
  2096. - function setTarget(float deltatime)
  2097. - {
  2098. +function setTarget(float deltatime)
  2099. +{
  2100. local rotator TargetRot;
  2101. local vector TraceStart;
  2102. local vector TraceEnd;
  2103. @@ -143,6 +153,9 @@ auto state seeking
  2104.  
  2105. //@PAB test
  2106. local actor HitActor;
  2107. +
  2108. + //AdamJD local int
  2109. + local int TargetPitchX;
  2110.  
  2111. Colorstart.base.r=13;
  2112. Colorstart.base.g=108;
  2113. @@ -213,26 +226,31 @@ auto state seeking
  2114.  
  2115. TargetRot = p.rotation;
  2116. TargetRot.pitch = TargetPitch;
  2117. - TargetRot.yaw = TargetRot.yaw + TargetYaw;
  2118. + TargetRot.yaw += TargetYaw;
  2119.  
  2120. // BaseHUD(p.MyHUD).DebugVala = TargetPitch;
  2121.  
  2122. - TraceStart = p.Location;
  2123. + //TraceStart = p.Location; //old tracestart -AdamJD
  2124. + TraceStart = p.cam.CamTarget.Location; //set tracestart to the cam target location -AdamJD
  2125.  
  2126. TraceEnd = Vector(TargetRot);
  2127. Cushion = TraceEnd;
  2128. +
  2129. + //set TargetPitchX to TargetPitch -AdamJD
  2130. + TargetPitchX = TargetPitch;
  2131.  
  2132. //Right now, this is only used by the Devil's snare level.
  2133. if( p.bExtendedTargetting )
  2134. - TraceEnd = TraceEnd * 1024;//512;
  2135. + TraceEnd *= 1024;//512;
  2136. else
  2137. - TraceEnd = TraceEnd * 512;
  2138. + TraceEnd *= 512;
  2139.  
  2140. - TraceEnd = TraceEnd + p.Location;
  2141. + // TraceEnd = TraceEnd + p.Location; //old traceend -AdamJD
  2142. + TraceEnd = p.cam.CamTarget.Location + p.cam.vForward * (p.cam.fLookAtDistance + fLOS_Distance); //set traceend to the cam target location and try to keep spell locked on -AdamJD
  2143.  
  2144. PossibleVictim = none;
  2145. -
  2146. -/* if(baseWand(p.weapon).curSpell== class'spelldud')
  2147. +
  2148. + /*if(baseWand(p.weapon).curSpell== class'spelldud')
  2149. {
  2150. Colorstart.base.r=0;
  2151. Colorstart.base.g=0;
  2152. @@ -254,12 +272,17 @@ auto state seeking
  2153. {
  2154. HitLocation = TraceEnd;
  2155. }
  2156. - }
  2157. -*/
  2158. + }*/
  2159. +
  2160. foreach TraceActors(class 'actor', HitActor, HitLocation, HitNormal, TraceEnd, TraceStart)
  2161. {
  2162. // log(string(HitActor.name) $" " $vsize(HitLocation - TraceStart));
  2163.  
  2164. + if( HitActor.IsA('baseHarry') || HitActor.IsA('Harry') || HitActor.IsA('BaseCam') || HitActor.IsA('CamTarget') )
  2165. + {
  2166. + continue; //ignore Harry and camera stuff -AdamJD
  2167. + }
  2168. +
  2169. if (HitActor.bprojtarget || HitActor.bBlockActors )
  2170. {
  2171. // Found target,
  2172. @@ -284,19 +307,21 @@ auto state seeking
  2173. {
  2174. if (possiblevictim.bprojtarget == true)
  2175. {
  2176. -/* Colorstart.base.r=169;
  2177. + /*Colorstart.base.r=169;
  2178. Colorstart.base.g=5;
  2179. Colorstart.base.b=5;
  2180.  
  2181. ColorEnd.base.r=0;
  2182. ColorEnd.base.g=0;
  2183. - ColorEnd.base.b=0;
  2184. -*/
  2185. + ColorEnd.base.b=0;*/
  2186. +
  2187. victim = possiblevictim;
  2188.  
  2189. TargetArea = victim.GetWorldCollisionBox(true);
  2190. HitLocation = ((TargetArea.Max - TargetArea.Min) / 2) + TargetArea.Min;
  2191. -
  2192. +
  2193. + //retail original code -AdamJD
  2194. + /*
  2195. if (possiblevictim.CollideType == CT_Box)
  2196. {
  2197. radius = possiblevictim.CollisionWidth;
  2198. @@ -305,8 +330,34 @@ auto state seeking
  2199. {
  2200. radius = possiblevictim.collisionradius;
  2201. }
  2202. - Cushion = Cushion * (radius / 2);
  2203. - HitLocation = HitLocation - Cushion;
  2204. + */
  2205. +
  2206. + //AdamJD code start
  2207. + //get victim width and setup cursor locking onto the victim
  2208. + if(victim.CollideType == CT_Box || victim.CollideType == CT_AlignedCylinder || victim.CollideType == CT_OrientedCylinder || victim.CollisionWidth == 0)
  2209. + {
  2210. + cushion = vec(victim.CollisionRadius, victim.CollisionWidth, victim.CollisionHeight);
  2211. + radius = victim.CollisionWidth;
  2212. + TargetPitchX = radius * p.SmoothMouseX;
  2213. + TargetPitch = radius * p.SmoothMouseY;
  2214. +
  2215. + vGestureOffset = -(vec(radius, 0, 0));
  2216. + }
  2217. + //get victim radius and setup cursor locking onto the victim
  2218. + else
  2219. + {
  2220. + cushion = vec(victim.CollisionRadius, victim.CollisionRadius, victim.CollisionHeight);
  2221. + radius = victim.collisionradius;
  2222. + TargetPitchX = radius * p.SmoothMouseX;
  2223. + TargetPitch = radius * p.SmoothMouseY;
  2224. +
  2225. + vGestureOffset = normal(p.location - victim.location) * radius;
  2226. + }
  2227. + //AdamJD code end
  2228. +
  2229. + Cushion *= (radius / 2);
  2230. +
  2231. + HitLocation -= Cushion;
  2232. victim.Targeted();
  2233.  
  2234. LockOn(victim);
  2235. @@ -331,80 +382,131 @@ auto state seeking
  2236. TargetGlowObjBlue.SetTargetUnlock();
  2237. HitLocation = TraceEnd;
  2238. HitLocation -= Cushion;
  2239. -
  2240. +
  2241. SetFloatTarget();
  2242. TargetGlowObjRed.SetFloatTarget();
  2243. TargetGlowObjBlue.SetFloatTarget();
  2244. }
  2245. -
  2246. +
  2247. movesmooth(HitLocation - location);
  2248. TargetGlowObjRed.MoveSmooth(HitLocation - TargetGlowObjRed.location);
  2249. TargetGlowObjBlue.MoveSmooth(HitLocation - TargetGlowObjBlue.location);
  2250. -
  2251. -/* BaseHUD(p.MyHUD).DebugValx = HitLocation.x;
  2252. +
  2253. + /*BaseHUD(p.MyHUD).DebugValx = HitLocation.x;
  2254. BaseHUD(p.MyHUD).DebugValy = HitLocation.y;
  2255. BaseHUD(p.MyHUD).DebugValz = HitLocation.z;*/
  2256. +
  2257. + //lock cursor onto victim -AdamJD
  2258. + if (bIsLockedOn == true)
  2259. + {
  2260. + //log("locked onto victim test");
  2261. + TargetPitchX = p.SmoothMouseX;
  2262. + TargetPitch = p.SmoothMouseY;
  2263. + TargetRot = victim.rotation;
  2264. + }
  2265. }
  2266. -
  2267. +
  2268. function LockOn(actor TargetActor)
  2269. {
  2270. - local BoundingBox TargetArea;
  2271. + local BoundingBox TargetArea;
  2272. local vector TargetCentre;
  2273. local float fTargetWidth;
  2274. local float fTargetHeight;
  2275. local float fTargetDepth;
  2276. -
  2277. + local int TargetPitchX; //AdamJD local int
  2278. +
  2279. TargetArea = TargetActor.GetWorldCollisionBox(true);
  2280. -
  2281. +
  2282. TargetCentre = ((TargetArea.Max - TargetArea.Min) / 2) + TargetArea.Min + TargetActor.CentreOffset;
  2283. + fTargetDepth = abs(TargetArea.Max.x - TargetArea.Min.x) * TargetActor.SizeModifier;
  2284. fTargetWidth = abs(TargetArea.Max.y - TargetArea.Min.y) * TargetActor.SizeModifier;
  2285. fTargetHeight = abs(TargetArea.Max.z - TargetArea.Min.z) * TargetActor.SizeModifier;
  2286. - fTargetDepth = abs(TargetArea.Max.x - TargetArea.Min.x);
  2287. -
  2288. - SetTargetLock(fTargetWidth, fTargetHeight, fTargetDepth);
  2289. - TargetGlowObjRed.SetTargetLock(fTargetWidth, fTargetHeight, fTargetDepth);
  2290. - TargetGlowObjBlue.SetTargetLock(fTargetWidth, fTargetHeight, fTargetDepth);
  2291. -
  2292. +
  2293. + SetTargetLock(fTargetWidth, fTargetHeight, fTargetDepth);
  2294. + SetRotation(TargetActor.rotation);
  2295. + //not needed -AdamJD
  2296. + //TargetGlowObjRed.SetTargetLock(fTargetWidth, fTargetHeight, fTargetDepth);
  2297. + //TargetGlowObjBlue.SetTargetLock(fTargetWidth, fTargetHeight, fTargetDepth);
  2298. +
  2299. baseWand(p.weapon).ChooseSpell(victim.eVulnerableToSpell);
  2300.  
  2301. + BaseHUD(p.MyHUD).DebugValX = TargetActor.SizeModifier; //get debug X value -AdamJD
  2302. BaseHUD(p.MyHUD).DebugValY = TargetActor.SizeModifier;
  2303. -
  2304. + BaseHUD(p.MyHUD).DebugValZ = TargetActor.SizeModifier; //get debug Z value -AdamJD
  2305. +
  2306. + TargetPitchX = TargetPitch; //set TargetPitchX to TargetPitch -AdamJD
  2307. +
  2308. // Get Spell gesture
  2309. -
  2310. - if (baseWand(p.Weapon).curSpell != none && baseWand(p.weapon).curSpell != class'spelldud')
  2311. + if (baseWand(p.Weapon).curSpell != none && baseWand(p.weapon).curSpell != class'spelldud') //&& (!TargetActor.IsA('baseHarry') || !TargetActor.IsA('Harry') || !TargetActor.IsA('baseWand') || !TargetActor.IsA('BaseCam') || !TargetActor.IsA('CamTarget') || TargetActor != p || TargetActor != Owner) )
  2312. {
  2313. - SpellGesture = baseWand(p.Weapon).curSpell.default.gesture;
  2314. + SpellGesture = baseWand(p.Weapon).curSpell.default.gesture;
  2315. }
  2316. -
  2317. +
  2318. if (FXVisible == false)
  2319. {
  2320. - if (victim.isa('basechar'))
  2321. + if (victim.isa('basechar') )
  2322. {
  2323. if (basechar(victim).bGestureOnTargeting)
  2324. {
  2325. FXVisible = true;
  2326. + bIsLockedOn = true; //cursor is locked on -AdamJD
  2327. DrawSpellFX(TargetCentre, fTargetWidth, fTargetDepth);
  2328. + vGestureOffset = -(vec(fTargetWidth, 0, 0)); //get GestureOffset -AdamJD
  2329. + TargetPitchX = p.SmoothMouseX; //set TargetPitch to X mouse axis -AdamJD
  2330. + TargetPitch = p.SmoothMouseY; //set TargetPitch to Y mouse axis -AdamJD
  2331. }
  2332. else
  2333. {
  2334. - // save location of spell, but don't use it
  2335. -
  2336. + //save location of spell, but don't use it
  2337. + bIsLockedOn = true; //cursor is locked on -AdamJD
  2338. TargetHitLocation = TargetCentre;
  2339. TargetSize = fTargetWidth;
  2340. + vGestureOffset = normal(p.location - TargetActor.location) * fTargetWidth; //get GestureOffset -AdamJD
  2341. + TargetPitchX = p.SmoothMouseX; //set TargetPitch to X mouse axis -AdamJD
  2342. + TargetPitch = p.SmoothMouseY; //set TargetPitch to Y mouse axis -AdamJD
  2343. }
  2344. }
  2345. - else
  2346. + else
  2347. {
  2348. - FXVisible = true;
  2349. - DrawSpellFX(TargetCentre, fTargetWidth, fTargetDepth);
  2350. - }
  2351. + FXVisible = true;
  2352. + bIsLockedOn = true; //cursor is locked on -AdamJD
  2353. + DrawSpellFX(TargetCentre, fTargetWidth, fTargetDepth);
  2354. + vGestureOffset = -(vec(fTargetWidth, 0, 0)); //get GestureOffset -AdamJD
  2355. + TargetPitchX = p.SmoothMouseX; //set TargetPitch to X mouse axis -AdamJD
  2356. + TargetPitch = p.SmoothMouseY; //set TargetPitch to Y mouse axis -AdamJD
  2357. + }
  2358. }
  2359. +
  2360. else
  2361. {
  2362. - // rotate FX
  2363. -// RotateSpellFX();
  2364. + //rotate FX
  2365. + //RotateSpellFX();
  2366. }
  2367. - }
  2368. +
  2369. +
  2370. + //lock cursor onto target -AdamJD
  2371. + if (bIsLockedOn == true)
  2372. + {
  2373. + //log("locked onto target test");
  2374. +
  2375. + //get target width and setup cursor locking onto the target
  2376. + if(TargetActor.CollideType == CT_Box || TargetActor.CollideType == CT_AlignedCylinder || TargetActor.CollideType == CT_OrientedCylinder || TargetActor.CollisionWidth == 0)
  2377. + {
  2378. + TargetCentre = vec(TargetActor.CollisionRadius, TargetActor.CollisionWidth, TargetActor.CollisionHeight);
  2379. + fTargetWidth = TargetActor.CollisionWidth;
  2380. + TargetPitchX = p.SmoothMouseX;
  2381. + TargetPitch = p.SmoothMouseY;
  2382. + }
  2383. + //get target radius and setup cursor locking onto the target
  2384. + else
  2385. + {
  2386. + TargetCentre = vec(TargetActor.CollisionRadius, TargetActor.CollisionRadius, TargetActor.CollisionHeight);
  2387. + fTargetWidth = TargetActor.CollisionRadius;
  2388. + TargetPitchX = p.SmoothMouseX;
  2389. + TargetPitch = p.SmoothMouseY;
  2390. + }
  2391. + }
  2392. +}
  2393.  
  2394. function RotateSpellFX()
  2395. {
  2396. @@ -428,7 +530,7 @@ auto state seeking
  2397.  
  2398. function SetTargetLock(float TargetWidth, float TargetHeight, float TargetDepth)
  2399. {
  2400. - ParticlesPerSec.Base=10.000000;
  2401. + ParticlesPerSec.Base=10.000000;
  2402. SourceWidth.Base=TargetWidth;
  2403. SourceHeight.Base=TargetHeight;
  2404. SourceDepth.Base=TargetDepth;
  2405. @@ -541,7 +643,7 @@ auto state seeking
  2406. Winfx.ParticlesMax = 200;
  2407. }
  2408.  
  2409. -/* BaseHUD(p.MyHUD).Debugstring = string(victim.name);
  2410. + /*BaseHUD(p.MyHUD).Debugstring = string(victim.name);
  2411. BaseHUD(p.MyHUD).DebugVala = TargetSize;
  2412. BaseHUD(p.MyHUD).DebugValx = TargetHitLocation.x;
  2413. BaseHUD(p.MyHUD).DebugValy = TargetHitLocation.y;
  2414. @@ -554,7 +656,7 @@ auto state seeking
  2415. }
  2416. }
  2417.  
  2418. -/* begin:
  2419. + /*begin:
  2420. circle.pitch=0;
  2421. circle.yaw=0;
  2422. circle.roll=0;
  2423. @@ -569,8 +671,8 @@ auto state seeking
  2424.  
  2425. // seekloop:
  2426. // sleep(0.001);
  2427. -// goto 'seekloop';
  2428. -*/
  2429. +// goto 'seekloop';*/
  2430. +
  2431.  
  2432. }
  2433.  
  2434. @@ -583,15 +685,15 @@ auto state seeking
  2435.  
  2436. // Spawn an appropriate particle system in front of us.
  2437.  
  2438. -/* if (abs(vsize(HitLocation - p.location)) > abs(vsize(HitLocation - (vec(TargetSize / 2,0,0) << victim.Rotation) - p.Location)))
  2439. + /*if (abs(vsize(HitLocation - p.location)) > abs(vsize(HitLocation - (vec(TargetSize / 2,0,0) << victim.Rotation) - p.Location)))
  2440. {
  2441. SpellLoc = HitLocation - (vec(TargetSize / 2,0,0) << victim.Rotation);
  2442. }
  2443. else
  2444. {
  2445. SpellLoc = HitLocation + (vec(TargetSize / 2,0,0) << victim.Rotation);
  2446. - }
  2447. -*/
  2448. + }*/
  2449. +
  2450.  
  2451.  
  2452. // AE:
  2453. @@ -611,20 +713,20 @@ auto state seeking
  2454. // }
  2455.  
  2456. // BaseHUD(p.MyHUD).Debugstring = string(victim.name);
  2457. -/* BaseHUD(p.MyHUD).DebugValx = HitLocation.x;
  2458. + /*BaseHUD(p.MyHUD).DebugValx = HitLocation.x;
  2459. BaseHUD(p.MyHUD).DebugValy = HitLocation.y;
  2460. BaseHUD(p.MyHUD).DebugValz = HitLocation.z;
  2461.  
  2462. BaseHUD(p.MyHUD).DebugVala2 = TargetSize;
  2463. BaseHUD(p.MyHUD).DebugValx2 = SpellLoc.x;
  2464. BaseHUD(p.MyHUD).DebugValy2 = SpellLoc.y;
  2465. - BaseHUD(p.MyHUD).DebugValz2 = SpellLoc.z;
  2466. -*/
  2467. -// Winfx = p.Spawn( class'Reward01',
  2468. + BaseHUD(p.MyHUD).DebugValz2 = SpellLoc.z; */
  2469. +
  2470. + // Winfx = p.Spawn( class'Reward01',
  2471. Winfx = victim.Spawn( baseWand(p.Weapon).curSpell.default.GestureParticleEffectClass,
  2472. [SpawnLocation] SpellLoc);
  2473. -/* Winfx = victim.Spawn( class'Les_SpellShape',
  2474. - [SpawnLocation] SpellLoc);*/
  2475. + // Winfx = victim.Spawn( class'Les_SpellShape',
  2476. + // [SpawnLocation] SpellLoc);
  2477. // [SpawnLocation] HitLocation);
  2478. // [SpawnLocation] p.location + (vec(vSize(location - p.location),0,0) >> p.Rotation) );
  2479.  
  2480. @@ -637,14 +739,14 @@ auto state seeking
  2481. Winfx.Period.Base = 0.f;
  2482. Winfx.Period.Rand = 1.f;
  2483. Winfx.ParticlesMax = 0;
  2484. -// Winfx.SizeWidth.Base = 8.000000;
  2485. -// Winfx.SizeLength.Base = 8.000000;
  2486. + // Winfx.SizeWidth.Base = 8.000000;
  2487. + // Winfx.SizeLength.Base = 8.000000;
  2488.  
  2489. -// Winfx.SetOwner(victim);
  2490. -// Winfx.SetPhysics(PHYS_Trailer);
  2491. -// Winfx.bTrailerSameRotation = true;
  2492. + // Winfx.SetOwner(victim);
  2493. + // Winfx.SetPhysics(PHYS_Trailer);
  2494. + // Winfx.bTrailerSameRotation = true;
  2495.  
  2496. -// Winfx.Lifetime.Base = 3.0;
  2497. + // Winfx.Lifetime.Base = 3.0;
  2498. }
  2499.  
  2500.  
  2501. @@ -689,9 +791,10 @@ function Destroyed()
  2502. // Textures(0)=Texture'HPParticle.particle_fx.soft_pfx'
  2503. // Textures(0)=Texture'HPParticle.hp_fx.Particles.Sparkle_1'
  2504.  
  2505. +// --------------------------------------------------------------------------------------------
  2506. defaultproperties
  2507. {
  2508. - ParticlesPerSec=(Base=20)
  2509. + ParticlesPerSec=(Base=20)
  2510. SourceWidth=(Base=100)
  2511. SourceHeight=(Base=100)
  2512. SourceDepth=(Base=100)
  2513. @@ -710,4 +813,5 @@ defaultproperties
  2514. Textures(0)=Texture'HPParticle.hp_fx.Particles.Sparkle_1'
  2515. Rotation=(Pitch=16640)
  2516. bRotateToDesired=True
  2517. -}
  2518. + fLOS_Distance=512 //added by me -AdamJD
  2519. +}
  2520. \ No newline at end of file
  2521. diff --git a/HPBase/Classes/baseConsole.uc b/HPBase/Classes/baseConsole.uc
  2522. index c1ecd75..5d61866 100644
  2523. --- a/HPBase/Classes/baseConsole.uc
  2524. +++ b/HPBase/Classes/baseConsole.uc
  2525. @@ -1,5 +1,7 @@
  2526. class baseConsole expands WindowConsole;
  2527.  
  2528. +//Edited by- AdamJD (edited code will have AdamJD by it)
  2529. +
  2530. var bool bLeftKeyDown;
  2531. var bool bRightKeyDown;
  2532. var bool bForwardKeyDown;
  2533. @@ -15,7 +17,7 @@ var bool bRotateDownKeyDown;
  2534. var bool bSpaceReleased;
  2535. var bool bSpacePressed;
  2536.  
  2537. -var globalconfig bool bDebugMode;
  2538. +var globalconfig bool bDebugMode; //this was already here in the retail code but was only set up to be typed in game... -AdamJD
  2539. var globalconfig bool bUseSystemFonts;
  2540.  
  2541. var bool bUseAsianFont;
  2542. @@ -98,4 +100,6 @@ function DrawLevelAction( canvas C )
  2543. defaultproperties
  2544. {
  2545. bUseSystemFonts=True
  2546. + //bDebugMode=True //old default prop added by me, debug mode is now not hard coded and can be turned on by changing bDebugMode=False to bDebugMode=True in the HP.ini config file or by typing "HarryDebugModeOn" in game -AdamJD
  2547. + bDebugMode=False //debug mode is now turned off by default and can be turned off by pressing F7 in game if turned on -AdamJD
  2548. }
  2549. diff --git a/HPBase/Classes/baseHarry.uc b/HPBase/Classes/baseHarry.uc
  2550. index f01aa16..7ba538c 100644
  2551. --- a/HPBase/Classes/baseHarry.uc
  2552. +++ b/HPBase/Classes/baseHarry.uc
  2553. @@ -1,5 +1,7 @@
  2554. class baseHarry expands PlayerPawn;
  2555.  
  2556. +// Edited by- AdamJD (edited code will have AdamJD by it)
  2557. +
  2558. var bool clearMessages;
  2559.  
  2560. // The following inputs are in addition to the standard inputs defined in PlayerPawn.uc.
  2561. @@ -161,6 +163,31 @@ var travel bool bHasBark;
  2562. // sto: For debugging purposes, below
  2563. var globalconfig bool bDisableDialog;
  2564.  
  2565. +function Cast()
  2566. +{
  2567. + //overridden in Harry.uc (best method to do this the way this cursed code is set up...)-AdamJD
  2568. +}
  2569. +
  2570. +function StartCasting()
  2571. +{
  2572. + //go to StartCasting function in Harry class -AdamJD
  2573. +}
  2574. +
  2575. +function StopCasting()
  2576. +{
  2577. + //nothing to see here... -AdamJD
  2578. +}
  2579. +
  2580. +function PlayFinishCastAnim()
  2581. +{
  2582. + //you know the drill by now -AdamJD
  2583. +}
  2584. +
  2585. +function PlayFinishThrowCrackerAnim()
  2586. +{
  2587. + //same as PlayFinishCastAnim but for wizard crackers -AdamJD
  2588. +}
  2589. +
  2590. function AddStars(int n)
  2591. {
  2592. numStars+=n;
  2593. @@ -168,6 +195,7 @@ function AddStars(int n)
  2594. baseHud(myHud).StarItem.Show();
  2595.  
  2596. }
  2597. +
  2598. function AddBeans(int n)
  2599. {
  2600. numBeans+=n;
  2601. @@ -514,9 +542,9 @@ function actor ExtendTarget()
  2602. local rotator checkAngle, bestAngle;
  2603. local vector objectDir;
  2604.  
  2605. - checkangle = rotator(rectarget.location - location);
  2606. + checkangle = rotator(rectarget.location - location);
  2607. defaultYaw = Rotation.yaw & 0xffff;
  2608. - defaultpitch = rectarget.TargetPitch & 0xffff;
  2609. + defaultpitch = rectarget.TargetPitch & 0xffff;
  2610.  
  2611. BestTarget = none;
  2612.  
  2613. @@ -1090,8 +1118,6 @@ Begin:
  2614. gotostate(CutSaveState);
  2615. }
  2616.  
  2617. -
  2618. -
  2619. state wingspell
  2620. {
  2621. function tick (float deltaTime)
  2622. @@ -1120,6 +1146,8 @@ function endstate()
  2623.  
  2624. {
  2625. baseprops(focusActor).bStopLevitating=true;
  2626. + freeHarry();
  2627. + PlayFinishCastAnim(); //stops Harry running with his arms up after casting wingardium -AdamJD
  2628. }
  2629.  
  2630.  
  2631. @@ -1142,12 +1170,12 @@ function endstate()
  2632. if(bSkipKeyPressed)
  2633. {
  2634. baseprops(focusActor).bStopLevitating=true;
  2635. -
  2636. + freeHarry();
  2637. }
  2638. playanim('wave');
  2639. - rectarget.victim.eVulnerableToSpell=SPELL_WingSustain;
  2640. + rectarget.victim.eVulnerableToSpell=SPELL_WingSustain;
  2641. basewand(weapon).ChooseSpell(SPELL_WingSustain);
  2642. - basewand(weapon).castspell(rectarget.victim);
  2643. + basewand(weapon).castspell(rectarget.victim);
  2644. sleep(0.3);
  2645. goto 'loop';
  2646.  
  2647. @@ -1412,29 +1440,29 @@ defaultproperties
  2648. ConstrainYawVariance=5500
  2649. maxPointsPerHouse=400
  2650. HarryMultipleForGryffindor=3
  2651. - WizardCards(0)=(ID=101)
  2652. - WizardCards(1)=(ID=1)
  2653. - WizardCards(2)=(ID=28)
  2654. - WizardCards(3)=(ID=10)
  2655. - WizardCards(4)=(ID=24)
  2656. - WizardCards(5)=(ID=18)
  2657. - WizardCards(6)=(ID=8)
  2658. - WizardCards(7)=(ID=2)
  2659. - WizardCards(8)=(ID=19)
  2660. - WizardCards(9)=(ID=47)
  2661. - WizardCards(10)=(ID=35)
  2662. - WizardCards(11)=(ID=41)
  2663. - WizardCards(12)=(ID=17)
  2664. - WizardCards(13)=(ID=69)
  2665. - WizardCards(14)=(ID=48)
  2666. - WizardCards(15)=(ID=37)
  2667. - WizardCards(16)=(ID=62)
  2668. - WizardCards(17)=(ID=57)
  2669. - WizardCards(18)=(ID=49)
  2670. - WizardCards(19)=(ID=96)
  2671. - WizardCards(20)=(ID=72)
  2672. - WizardCards(21)=(ID=82)
  2673. - WizardCards(22)=(ID=83)
  2674. - WizardCards(23)=(ID=11)
  2675. - WizardCards(24)=(ID=100)
  2676. + WizardCards(0)=(Id=101)
  2677. + WizardCards(1)=(Id=1)
  2678. + WizardCards(2)=(Id=28)
  2679. + WizardCards(3)=(Id=10)
  2680. + WizardCards(4)=(Id=24)
  2681. + WizardCards(5)=(Id=18)
  2682. + WizardCards(6)=(Id=8)
  2683. + WizardCards(7)=(Id=2)
  2684. + WizardCards(8)=(Id=19)
  2685. + WizardCards(9)=(Id=47)
  2686. + WizardCards(10)=(Id=35)
  2687. + WizardCards(11)=(Id=41)
  2688. + WizardCards(12)=(Id=17)
  2689. + WizardCards(13)=(Id=69)
  2690. + WizardCards(14)=(Id=48)
  2691. + WizardCards(15)=(Id=37)
  2692. + WizardCards(16)=(Id=62)
  2693. + WizardCards(17)=(Id=57)
  2694. + WizardCards(18)=(Id=49)
  2695. + WizardCards(19)=(Id=96)
  2696. + WizardCards(20)=(Id=72)
  2697. + WizardCards(21)=(Id=82)
  2698. + WizardCards(22)=(Id=83)
  2699. + WizardCards(23)=(Id=11)
  2700. + WizardCards(24)=(Id=100)
  2701. }
  2702. diff --git a/HPBase/Classes/baseSpell.uc b/HPBase/Classes/baseSpell.uc
  2703. index f5579ae..6d427da 100644
  2704. --- a/HPBase/Classes/baseSpell.uc
  2705. +++ b/HPBase/Classes/baseSpell.uc
  2706. @@ -3,19 +3,19 @@
  2707. //=============================================================================
  2708. class baseSpell extends Projectile;
  2709.  
  2710. -#exec MESH IMPORT MESH=spellProj ANIVFILE=MODELS\Cross_a.3D DATAFILE=MODELS\Cross_d.3D X=0 Y=0 Z=0
  2711. +//Edited by- AdamJD (edited code will have AdamJD by it)
  2712.  
  2713. -#exec MESH ORIGIN MESH=spellProj X=0 Y=0 Z=0 YAW=64
  2714. -#exec MESH SEQUENCE MESH=spellProj SEQ=All STARTFRAME=0 NUMFRAMES=1
  2715. -#exec MESH SEQUENCE MESH=spellProj SEQ=Still STARTFRAME=0 NUMFRAMES=1
  2716. -#exec MESHMAP SCALE MESHMAP=spellProj X=0.2 Y=0.2 Z=0.2
  2717. +//#exec MESH IMPORT MESH=spellProj ANIVFILE=MODELS\SpellProj_a.3D DATAFILE=MODELS\Cross_d.3D X=0 Y=0 Z=0 //not needed -AdamJD
  2718.  
  2719. -#exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage
  2720. +//#exec MESH ORIGIN MESH=spellProj X=0 Y=0 Z=0 YAW=64
  2721. +//#exec MESH SEQUENCE MESH=spellProj SEQ=All STARTFRAME=0 NUMFRAMES=1
  2722. +//#exec MESH SEQUENCE MESH=spellProj SEQ=Still STARTFRAME=0 NUMFRAMES=1
  2723. +//#exec MESHMAP SCALE MESHMAP=spellProj X=0.2 Y=0.2 Z=0.2
  2724.  
  2725. +//#exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage //not needed -AdamJD
  2726.  
  2727.  
  2728. -
  2729. -#EXEC TEXTURE IMPORT NAME=defaultSpellIcon FILE=..\HPMenu\TEXTURES\HUD\transSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  2730. +#EXEC TEXTURE IMPORT NAME=defaultSpellIcon FILE=TEXTURES\transSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  2731.  
  2732. var Texture spellIcon;
  2733. var string spellName;
  2734. @@ -28,7 +28,7 @@ var sound CastSound;
  2735. var string SpellIncantation;
  2736. var string QuietSpellIncantation;
  2737.  
  2738. -var float manaCost;
  2739. +//var float manaCost; //not needed -AdamJD
  2740.  
  2741. var (VisualEffects) Mesh projectileMesh;
  2742. var (VisualEffects) class<baseVisualEffect> hitEffect;
  2743. @@ -48,6 +48,12 @@ var (VisualEffects) gesture Gesture;
  2744. // FX for the spell gesture
  2745. var (VisualEffects)class<ParticleFX>GestureParticleEffectClass;
  2746.  
  2747. +//AdamJD vars
  2748. +var vector CurrentDir;
  2749. +var vector TargetOffset;
  2750. +var float SeekSpeed;
  2751. +var float SpellLifeTime;
  2752. +
  2753. simulated function PostBeginPlay()
  2754. {
  2755. Super.PostBeginPlay();
  2756. @@ -58,6 +64,8 @@ simulated function PostBeginPlay()
  2757. flyParticleEffect=spawn(flyParticleEffectClass);
  2758. flyParticleEffect.setRotation(flyParticleEffect.default.rotation);
  2759. }
  2760. +
  2761. + CurrentDir = vector(rotation); //AdamJD
  2762. }
  2763.  
  2764. function PlaySpellCastSound()
  2765. @@ -86,6 +94,11 @@ event Tick(float deltaTime)
  2766. super.Tick(deltaTime);
  2767. if(flyParticleEffect!=None)
  2768. flyParticleEffect.SetLocation(location);
  2769. +
  2770. + if( (SpellLifeTime -= deltaTime) < 0 )
  2771. + {
  2772. + Destroy();
  2773. + }
  2774.  
  2775. }
  2776.  
  2777. @@ -94,6 +107,28 @@ function AdjustLifeTimer(float NewLifeTimer)
  2778. //Implemented in derived class
  2779. }
  2780.  
  2781. +//target offset -AdamJD
  2782. +function InitSpell(Actor CastedAt, optional vector CastedAtOffset)
  2783. +{
  2784. + target = CastedAt;
  2785. + TargetOffset = CastedAtOffset;
  2786. +}
  2787. +
  2788. +//spell direction -AdamJD
  2789. +function SetSpellDirection( vector dir )
  2790. +{
  2791. + CurrentDir = normal(dir);
  2792. + DesiredRotation = rotator(CurrentDir);
  2793. + SetRotation( DesiredRotation );
  2794. + flyParticleEffect.SetRotation( DesiredRotation );
  2795. +}
  2796. +
  2797. +//hit location -AdamJD
  2798. +function vector GetTargetHitLocation()
  2799. +{
  2800. + return target.location + TargetOffset;
  2801. +}
  2802. +
  2803. //*************************************************************************************************
  2804. auto state Flying
  2805. {
  2806. @@ -224,7 +259,7 @@ simulated function Timer()
  2807.  
  2808.  
  2809. //@PAB removed this, as this caused the spell to go upwards far too much
  2810. - // aimPoint.Z=aimPoint.Z+(target.CollisionHeight)+2;
  2811. + //aimPoint.Z+=(target.CollisionHeight)+2;
  2812.  
  2813. SeekingDir = Normal(aimPoint - Location);
  2814. if ( (SeekingDir Dot InitialDir) > 0 )
  2815. @@ -239,7 +274,7 @@ simulated function Timer()
  2816. }
  2817.  
  2818. //drop off puffs as it flys
  2819. - // b = Spawn(class'ut_SpriteSmokePuff');
  2820. + //b = Spawn(class'ut_SpriteSmokePuff');
  2821. }
  2822.  
  2823.  
  2824. @@ -254,10 +289,12 @@ Log("******** Explode:"$self);
  2825.  
  2826. Destroy();
  2827. }
  2828. -function static Texture GetSpellIcon()
  2829. -{
  2830. - return(default.spellIcon);
  2831. -}
  2832. +
  2833. +//not needed -AdamJD
  2834. +// function static Texture GetSpellIcon()
  2835. +// {
  2836. + // return(default.spellIcon);
  2837. +// }
  2838.  
  2839. //Mover::IsRelevant calls this
  2840. function bool IsRelevantToMover()
  2841. @@ -273,7 +310,7 @@ defaultproperties
  2842. spellIcon=Texture'HPBase.Icons.defaultSpellIcon'
  2843. spellName="baseSpell"
  2844. CastSound=Sound'HPSounds.magic_sfx.spell_cast'
  2845. - manaCost=10
  2846. + //manaCost=10 //not needed -AdamJD
  2847. projectileMesh=LodMesh'HPBase.spellProj'
  2848. GestureParticleEffectClass=Class'HPParticle.Les_SpellShape'
  2849. Speed=170
  2850. @@ -282,7 +319,7 @@ defaultproperties
  2851. bNetTemporary=False
  2852. RemoteRole=ROLE_SimulatedProxy
  2853. LifeSpan=10
  2854. - Mesh=LodMesh'HPBase.spellProj'
  2855. + //Mesh=LodMesh'HPBase.spellProj' //not needed -AdamJD
  2856. DrawScale=0.3
  2857. bUnlit=True
  2858. CollisionRadius=5
  2859. @@ -295,4 +332,6 @@ defaultproperties
  2860. LightSaturation=72
  2861. LightRadius=10
  2862. bFixedRotationDir=True
  2863. + SeekSpeed=7.0f //AdamJD
  2864. + SpellLifeTime=8.0 //AdamJD
  2865. }
  2866. diff --git a/HPBase/Classes/baseWand.uc b/HPBase/Classes/baseWand.uc
  2867. index c19f68c..53b72d2 100644
  2868. --- a/HPBase/Classes/baseWand.uc
  2869. +++ b/HPBase/Classes/baseWand.uc
  2870. @@ -2,6 +2,9 @@
  2871. // baseWand
  2872. //=============================================================================
  2873. class baseWand extends Weapon;
  2874. +
  2875. +//Edited by- AdamJD (edited code will have AdamJD by it)
  2876. +
  2877. #exec MESH MODELIMPORT MESH=WandMesh MODELFILE=models\Wand.PSK LODSTYLE=10
  2878. #exec MESH ORIGIN MESH=WandMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0
  2879. #exec ANIM IMPORT ANIM=WandAnims ANIMFILE=models\Wand.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1
  2880. @@ -12,16 +15,28 @@ class baseWand extends Weapon;
  2881. // 'VERBOSE' gives more debugging info in UCC.log
  2882. #exec ANIM DIGEST ANIM=WandAnims VERBOSE
  2883.  
  2884. -#EXEC TEXTURE IMPORT NAME=WandTex0 FILE=TEXTURES\WandTexture.bmp GROUP=Skins
  2885. +#EXEC TEXTURE IMPORT NAME=WandTex0 FILE=TEXTURES\WandTex0.bmp GROUP=Skins
  2886.  
  2887. #EXEC MESHMAP SETTEXTURE MESHMAP=WandMesh NUM=0 TEXTURE=WandTex0
  2888.  
  2889.  
  2890. +//AdamJD vars
  2891. +var bool bInstantFire;
  2892. +var baseHarry playerHarry;
  2893. +var float fAutoHitDistance;
  2894. +var particleFX fxChargeParticles;
  2895. +var class<particleFX> fxChargeParticleFXClass;
  2896. +var bool bSpellCharges;
  2897. +var float fSpellCharge;
  2898. +var float fSpellChargeTime;
  2899. +var float fSpellChargeTimeSpan;
  2900. +var float fSpellChargeStartScale;
  2901. +var float fSpellChargeEndScale;
  2902.  
  2903.  
  2904. var() int HitDamage;
  2905. -var Pickup Amp;
  2906. -var bool bBotSpecialMove;
  2907. +//var Pickup Amp; //not needed -AdamJD
  2908. +//var bool bBotSpecialMove; //not needed -AdamJD
  2909.  
  2910. var bool bAutoSelectSpell;
  2911. var bool bUseNoSpell;
  2912. @@ -34,8 +49,10 @@ var class<baseSpell> spellList[16];
  2913. var particleFX wandEffect;
  2914. var baseProps testWand;
  2915.  
  2916. -var float maxMana;
  2917. -var float curMana;
  2918. +//not needed -AdamJD
  2919. +// var float maxMana;
  2920. +// var float curMana;
  2921. +
  2922. var bool bUseMana;
  2923. var bool bCasting;
  2924.  
  2925. @@ -52,14 +69,17 @@ local vector v;
  2926. local rotator r;
  2927.  
  2928. super.tick(deltaTime);
  2929. + //not needed -AdamJD
  2930. + /*
  2931. if(bUseMana)
  2932. {
  2933. curMana+=deltaTime*5;
  2934. if(curMana>maxMana)
  2935. curMana=maxMana;
  2936. }
  2937. + */
  2938.  
  2939. - /*
  2940. +
  2941. if(wandEffect!=None && pawn(owner) != none && pawn(owner).Weapon==self)
  2942. {
  2943. r=pawn(owner).weaponRot;
  2944. @@ -70,7 +90,7 @@ local rotator r;
  2945. wandEffect.ParticlesPerSec.Base=wandEffect.default.ParticlesPerSec.Base;
  2946. else
  2947. wandEffect.ParticlesPerSec.Base=4.1;
  2948. - }*/
  2949. + }
  2950. }
  2951.  
  2952. function BecomeItem()
  2953. @@ -100,7 +120,6 @@ local int i;
  2954.  
  2955. event BeginPlay()
  2956. {
  2957. -
  2958. /*
  2959. if(wandEffect==None)
  2960. {
  2961. @@ -108,7 +127,7 @@ event BeginPlay()
  2962. wandEffect.ParticlesPerSec.Base=0;
  2963. wandEffect.bVelocityRelative=false;
  2964. }
  2965. - */
  2966. + */
  2967.  
  2968. bUseNoSpell = true;
  2969. }
  2970. @@ -136,8 +155,6 @@ function SelectSpell(class<baseSpell> spell)
  2971. curSpell=spell;
  2972. }
  2973.  
  2974. -
  2975. -
  2976. function ChooseSpell(ESpellType Spell)
  2977. {
  2978. switch(Spell)
  2979. @@ -216,8 +233,16 @@ function CastSpell(Actor target)
  2980. local vector HitLocation, HitNormal, Start;
  2981. local sound outSound;
  2982. local string Label, outText, Language;
  2983. + local bool bUseWeaponForProjRot; //AdamJD
  2984.  
  2985. - bPointing=True;//whats this for??
  2986. + bPointing=True;//whats this for??
  2987. +
  2988. + //AdamJD
  2989. + if( target == self )
  2990. + {
  2991. + bUseWeaponForProjRot = true;
  2992. + target = none;
  2993. + }
  2994.  
  2995. // Enable this for the PS1 Conversion O' Joy
  2996. if(bAutoSelectSpell)
  2997. @@ -241,6 +266,8 @@ function CastSpell(Actor target)
  2998.  
  2999. //AE: Moved incantation to after 'LastCastedSpell' is set, because it's used.
  3000.  
  3001. + //not needed -AdamJD
  3002. + /*
  3003. if(bUseMana)
  3004. {
  3005. if(curMana>=curSpell.default.manaCost)
  3006. @@ -248,6 +275,7 @@ function CastSpell(Actor target)
  3007. else
  3008. return;
  3009. }
  3010. + */
  3011.  
  3012. LastCastedSpell=baseSpell( ProjectileFire(curSpell, AltProjectileSpeed, false) );
  3013. LastCastedSpell.target = target;
  3014. @@ -280,13 +308,24 @@ function CastSpell(Actor target)
  3015. }
  3016. }
  3017. }
  3018. -
  3019. +
  3020. + //not needed -AdamJD
  3021. + /*
  3022. //See if there's a matching object we should get rid of. Also set curSpell to none.
  3023. if( DestroyThisOnCast != none) //!= none && curSpell(DestroyThisOnCast) != none )
  3024. {
  3025. DestroyThisOnCast.Destroy();
  3026. SelectSpell(none);
  3027. }
  3028. + */
  3029. +
  3030. + //HP2 code -AdamJD
  3031. + if( target.IsA('Pawn') &&
  3032. + vsize(location - target.location) < fAutoHitDistance )
  3033. + {
  3034. + // We are really close to our target so AutoHit it!
  3035. + LastCastedSpell.ProcessTouch( target, target.location );
  3036. + }
  3037.  
  3038. // Owner.PlaySound(AltFireSound, SLOT_None,Pawn(Owner).SoundDampening*4.0);
  3039.  
  3040. @@ -298,10 +337,25 @@ function CastSpell(Actor target)
  3041.  
  3042. function Texture GetSpellIcon()
  3043. {
  3044. - if(curSpell!=None)
  3045. - return curSpell.Default.spellIcon;
  3046. - else
  3047. - return None;
  3048. + //not needed -AdamJD
  3049. + // if(curSpell!=None)
  3050. + // return curSpell.Default.spellIcon;
  3051. + // else
  3052. + // return None;
  3053. +}
  3054. +
  3055. +//HP2 code -AdamJD
  3056. +function ScaleParticles( ParticleFX FX, float scale )
  3057. +{
  3058. + FX.ParticlesPerSec.Base = FX.default.ParticlesPerSec.Base * scale;
  3059. + FX.SourceHeight.Base = FX.default.SourceHeight.Base * scale;
  3060. + FX.SourceWidth.Base = FX.default.SourceWidth.Base * scale;
  3061. + FX.SourceDepth.Base = FX.default.SourceDepth.Base * scale;
  3062. + FX.SizeWidth.Base = FX.default.SizeWidth.Base * scale;
  3063. + FX.SizeLength.Base = FX.default.SizeLength.Base * scale;
  3064. + FX.AngularSpreadWidth.Base = FX.default.AngularSpreadWidth.Base* scale;
  3065. + FX.AngularSpreadHeight.Base = FX.default.AngularSpreadHeight.Base*scale;
  3066. + FX.SpinRate.Base = FX.default.SpinRate.Base * scale;
  3067. }
  3068.  
  3069. function inventory SpawnCopy( pawn Other )
  3070. @@ -317,16 +371,16 @@ function inventory SpawnCopy( pawn Other )
  3071.  
  3072. function AltFire( float Value )
  3073. {
  3074. - local actor HitActor;
  3075. - local vector HitLocation, HitNormal, Start;
  3076. -
  3077. + //not needed -AdamJD
  3078. + // local actor HitActor;
  3079. + // local vector HitLocation, HitNormal, Start;
  3080.  
  3081. if ( PlayerPawn(Owner) != None )
  3082. {
  3083. PlayerPawn(Owner).ClientInstantFlash( -0.4, vect(0, 0, 800));
  3084. PlayerPawn(Owner).ShakeView(ShakeTime, ShakeMag, ShakeVert);
  3085. }
  3086. - bPointing=True;
  3087. + bPointing=True;
  3088. ProjectileFire(AltProjectileClass, AltProjectileSpeed, bAltWarnTarget);
  3089.  
  3090. Owner.PlaySound(AltFireSound, SLOT_None,Pawn(Owner).SoundDampening*4.0);
  3091. @@ -337,7 +391,6 @@ function AltFire( float Value )
  3092. }
  3093.  
  3094.  
  3095. -
  3096. function float RateSelf( out int bUseAltMode )
  3097. {
  3098. return 99.0; //wand is always the best weapon. well, its the _only_ weapon.
  3099. @@ -345,10 +398,12 @@ function float RateSelf( out int bUseAltMode )
  3100.  
  3101. function BecomePickup()
  3102. {
  3103. - Amp = None;
  3104. + //Amp = None; //not needed -AdamJD
  3105. Super.BecomePickup();
  3106. }
  3107.  
  3108. +//not needed -AdamJD
  3109. +/*
  3110. function Timer()
  3111. {
  3112. local actor targ;
  3113. @@ -365,14 +420,14 @@ function Timer()
  3114. targ = Pawn(Owner).PickTarget(bestAim, bestDist, FireDir, Owner.Location);
  3115. if ( Pawn(targ) != None )
  3116. {
  3117. - bPointing = true;
  3118. + bPointing = true;
  3119. Pawn(targ).WarnTarget(Pawn(Owner), 300, FireDir);
  3120. SetTimer(1 + 4 * FRand(), false);
  3121. }
  3122. else
  3123. {
  3124. SetTimer(0.5 + 2 * FRand(), false);
  3125. - bPointing = false;
  3126. + bPointing = false;
  3127. }
  3128. }
  3129.  
  3130. @@ -383,6 +438,7 @@ function Finish()
  3131.  
  3132. Super.Finish();
  3133. }
  3134. +*/
  3135.  
  3136. ///////////////////////////////////////////////////////
  3137. function PlayFiring()
  3138. @@ -394,11 +450,11 @@ function PlayFiring()
  3139.  
  3140. function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
  3141. {
  3142. - local Vector Start, X,Y,Z;
  3143. -
  3144. + local Vector Start, X,Y,Z;
  3145. +
  3146. Owner.MakeNoise(Pawn(Owner).SoundDampening);
  3147.  
  3148. -//Log("Projectile fire owner:" $owner $" Rotation:" $Pawn(owner).ViewRotation);
  3149. +Log("Projectile fire owner:" $owner $" Rotation:" $Pawn(owner).ViewRotation);
  3150.  
  3151. GetAxes(Pawn(owner).ViewRotation,X,Y,Z);
  3152. Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z;
  3153. @@ -407,14 +463,12 @@ function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed,
  3154. if(ProjClass==Class'spellEcto')
  3155. AdjustedAim = pawn(owner).AdjustToss(ProjSpeed, Start, 0, True, (bWarn || (FRand() < 0.4)));
  3156. else
  3157. - AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn);
  3158. + AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, /*AimError*/ 0, True, bWarn);
  3159. bSplashDamage = true;
  3160. return(Spawn(ProjClass,,, Start,AdjustedAim));
  3161. -
  3162. }
  3163.  
  3164.  
  3165. -
  3166. function SpawnEffect(Vector DVector, int NumPoints, rotator SmokeRotation, vector SmokeLocation)
  3167. {
  3168. //cmp cleanup local RingExplosion4 Smoke;
  3169. @@ -434,7 +488,7 @@ state Idle
  3170.  
  3171. function BeginState()
  3172. {
  3173. - bPointing = false;
  3174. + bPointing = false;
  3175. SetTimer(0.5 + 2 * FRand(), false);
  3176. Super.BeginState();
  3177. if (Pawn(Owner).bFire!=0) Fire(0.0);
  3178. @@ -453,13 +507,14 @@ defaultproperties
  3179. {
  3180. HitDamage=35
  3181. bAutoSelectSpell=True
  3182. - maxMana=100
  3183. - curMana=50
  3184. + //not needed -AdamJD
  3185. + //maxMana=100
  3186. + //curMana=50
  3187. PickupAmmoCount=200
  3188. bSplashDamage=True
  3189. FireOffset=(Y=-6,Z=-7)
  3190. AltProjectileClass=Class'HPBase.baseSpell'
  3191. - AimError=0
  3192. + //AimError=0 //not needed -AdamJD
  3193. AltRefireRate=0.7
  3194. DeathMessage="%k inflicted mortal damage upon %o with the %w."
  3195. AutoSwitchPriority=4
  3196. @@ -473,4 +528,6 @@ defaultproperties
  3197. CollisionRadius=28
  3198. CollisionHeight=8
  3199. Mass=50
  3200. + bUseMana=False //AdamJD
  3201. + fAutoHitDistance=128 //AdamJD
  3202. }
  3203. diff --git a/HPBase/Classes/cHarryAnimChannel.uc b/HPBase/Classes/cHarryAnimChannel.uc
  3204. index d070ace..74d0a7e 100644
  3205. --- a/HPBase/Classes/cHarryAnimChannel.uc
  3206. +++ b/HPBase/Classes/cHarryAnimChannel.uc
  3207. @@ -1,5 +1,7 @@
  3208. class cHarryAnimChannel expands AnimChannel;
  3209.  
  3210. +//Edited by- AdamJD (edited code will have AdamJD by it)
  3211. +
  3212. function GotoStateHoldUpArm()
  3213. {
  3214. if( IsInState('stateIdle') )
  3215. @@ -16,10 +18,42 @@ function GotoStateThrow()
  3216. GotoState('stateThrow');
  3217. }
  3218.  
  3219. +//AdamJD
  3220. +function GotoStateCasting()
  3221. +{
  3222. + GotoState('stateCasting');
  3223. +}
  3224. +
  3225. +//AdamJD
  3226. +function GotoStateCancelCasting()
  3227. +{
  3228. + GotoState('stateCancelCasting');
  3229. +}
  3230. +
  3231. +//AdamJD
  3232. +function GotoStateCast()
  3233. +{
  3234. + GotoState('stateCast');
  3235. +}
  3236. +
  3237. +//AdamJD
  3238. +function GotoStateHasCast()
  3239. +{
  3240. + GotoState('stateHasCast');
  3241. +}
  3242. +
  3243. +//go to baseHarry class to get cast function -AdamJD
  3244. +function Cast()
  3245. +{
  3246. + local baseHarry harry;
  3247. + ForEach AllActors (class'baseHarry', harry)
  3248. + harry.Cast();
  3249. +}
  3250. +
  3251. auto state stateIdle
  3252. {
  3253. -// Begin:
  3254. -// AnimFrame = 0;
  3255. + // Begin:
  3256. + // AnimFrame = 0;
  3257. }
  3258.  
  3259. state stateHoldUpArm
  3260. @@ -46,11 +80,85 @@ state stateThrow
  3261. baseHarry(owner).ThrowCarryingActor();
  3262. finishAnim();
  3263.  
  3264. - /*HarryAnimChannel.*/GotoStateIdle();
  3265. + /*HarryAnimChannel.*/ //GotoStateIdle(); //not needed -AdamJD
  3266. baseHarry(Owner).HarryAnimType = AT_Replace;
  3267. + baseHarry(owner).PlayFinishThrowCrackerAnim(); //this fixes the issue where Harry kept his arms held up after throwing a cracker -AdamJD
  3268.  
  3269. //LoopAnim( 'breath' );
  3270. - GotoState('stateIdle');
  3271. + // GotoState('stateIdle'); //not needed -AdamJD
  3272. +}
  3273. +
  3274. +//AdamJD
  3275. +state stateCasting
  3276. +{
  3277. + //move camera when casting and turn spell casting stuff on -AdamJD
  3278. + function BeginState()
  3279. + {
  3280. + local baseHarry harry;
  3281. + ForEach AllActors (class'baseHarry', harry)
  3282. + harry.HarryAnimType = AT_Combine;
  3283. + harry.StartCasting();
  3284. + }
  3285. +
  3286. + begin:
  3287. + LoopAnim('wave', 1.0, 0.2);
  3288. +}
  3289. +
  3290. +//AdamJD
  3291. +state stateCancelCasting
  3292. +{
  3293. + //turn spell casting stuff off -AdamJD
  3294. + function BeginState()
  3295. + {
  3296. + local baseHarry harry;
  3297. + ForEach AllActors (class'baseHarry', harry)
  3298. + harry.HarryAnimType = AT_Combine;
  3299. + harry.StopCasting();
  3300. + }
  3301. +
  3302. + begin:
  3303. + PlayAnim('cast', 2.0 , 0.1); //setting the anim to 'breath' messes up the walking animations so 'cast' will have to do... -AdamJD
  3304. + FinishAnim(); //stops Harry snapping his arm back too early -AdamJD
  3305. + baseHarry(owner).HarryAnimType = AT_Replace;
  3306. + baseHarry(owner).PlayFinishCastAnim();
  3307. +}
  3308. +
  3309. +//AdamJD
  3310. +state stateCast
  3311. +{
  3312. + //turn spell casting stuff off -AdamJD
  3313. + function BeginState()
  3314. + {
  3315. + local baseHarry harry;
  3316. + ForEach AllActors (class'baseHarry', harry)
  3317. + harry.HarryAnimType = AT_Combine;
  3318. + // PlayAnim('cast', 2.0, 0.1);
  3319. + harry.StopCasting();
  3320. + }
  3321. +
  3322. + begin:
  3323. + PlayAnim('cast', 2.0, 0.1);
  3324. + // FinishAnim();
  3325. + baseHarry(owner).HarryAnimType = AT_Replace;
  3326. + baseHarry(owner).PlayFinishCastAnim();
  3327. +}
  3328. +
  3329. +//AdamJD
  3330. +state stateHasCast
  3331. +{
  3332. + //turn spell casting stuff off -AdamJD
  3333. + function BeginState()
  3334. + {
  3335. + local baseHarry harry;
  3336. + ForEach AllActors (class'baseHarry', harry)
  3337. + harry.HarryAnimType = AT_Combine;
  3338. + harry.StopCasting();
  3339. + }
  3340. +
  3341. + begin:
  3342. + FinishAnim(); //stops Harry snapping his arm back too early -AdamJD
  3343. + baseHarry(owner).HarryAnimType = AT_Replace;
  3344. + baseHarry(owner).PlayFinishCastAnim();
  3345. }
  3346.  
  3347. defaultproperties
  3348. diff --git a/HPBase/Classes/spellFlip.uc b/HPBase/Classes/spellFlip.uc
  3349. index 37e2895..b0ddedb 100644
  3350. --- a/HPBase/Classes/spellFlip.uc
  3351. +++ b/HPBase/Classes/spellFlip.uc
  3352. @@ -2,6 +2,8 @@
  3353.  
  3354. class spellFlip extends BASESPELL;
  3355.  
  3356. +//Edited by- AdamJD (edited code will have AdamJD by it)
  3357. +
  3358. #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10
  3359. #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0
  3360. #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1
  3361. @@ -13,7 +15,7 @@ class spellFlip extends BASESPELL;
  3362. #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE
  3363. #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage
  3364.  
  3365. -#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=..\HPMenu\TEXTURES\HUD\alohSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  3366. +//#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=TEXTURES\alohoSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //not needed -AdamJD
  3367.  
  3368. #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p
  3369.  
  3370. @@ -56,7 +58,7 @@ function PlayIncantateSound(bool bSneaking)
  3371.  
  3372. defaultproperties
  3373. {
  3374. - spellIcon=Texture'HPBase.Icons.alohoSpellIcon'
  3375. + //spellIcon=Texture'HPBase.Icons.alohoSpellIcon' //not needed -AdamJD
  3376. spellName="Flipendo"
  3377. SpellIncantation="spells1"
  3378. QuietSpellIncantation="spells10"
  3379. diff --git a/HPBase/Classes/spellIncendio.uc b/HPBase/Classes/spellIncendio.uc
  3380. index 6c06c36..bc70e39 100644
  3381. --- a/HPBase/Classes/spellIncendio.uc
  3382. +++ b/HPBase/Classes/spellIncendio.uc
  3383. @@ -1,6 +1,9 @@
  3384. //===============================================================================
  3385.  
  3386. class spellIncendio extends BASESPELL;
  3387. +
  3388. +//Edited by- AdamJD (edited code will have AdamJD by it)
  3389. +
  3390. #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10
  3391. #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0
  3392. #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1
  3393. @@ -12,7 +15,7 @@ class spellIncendio extends BASESPELL;
  3394. #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE
  3395. #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage
  3396.  
  3397. -#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=..\HPMenu\TEXTURES\HUD\alohSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  3398. +//#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=TEXTURES\alohoSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //not needed -AdamJD
  3399.  
  3400. #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p
  3401.  
  3402. @@ -47,7 +50,7 @@ function PlayIncantateSound(bool bSneaking)
  3403.  
  3404. defaultproperties
  3405. {
  3406. - spellIcon=Texture'HPBase.Icons.alohoSpellIcon'
  3407. + //spellIcon=Texture'HPBase.Icons.alohoSpellIcon' //not needed -AdamJD
  3408. spellName="Incendio"
  3409. SpellIncantation="spells5"
  3410. QuietSpellIncantation="spells9"
  3411. diff --git a/HPBase/Classes/spelldud.uc b/HPBase/Classes/spelldud.uc
  3412. index 287fedc..8bff647 100644
  3413. --- a/HPBase/Classes/spelldud.uc
  3414. +++ b/HPBase/Classes/spelldud.uc
  3415. @@ -2,6 +2,10 @@
  3416.  
  3417. class spelldud extends BASESPELL;
  3418.  
  3419. +//Edited by- AdamJD (edited code will have AdamJD by it)
  3420. +
  3421. +//not needed -AdamJD
  3422. +/*
  3423. #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10
  3424. #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0
  3425. #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1
  3426. @@ -13,7 +17,7 @@ class spelldud extends BASESPELL;
  3427. #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE
  3428. #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage
  3429.  
  3430. -#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=..\HPMenu\TEXTURES\HUD\alohSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  3431. +#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=TEXTURES\alohoSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  3432.  
  3433. #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p
  3434.  
  3435. @@ -26,15 +30,17 @@ function PostBeginPlay()
  3436. Super.PostBeginPlay();
  3437. LoopAnim('all', 2.0, 0.0);
  3438. }
  3439. -
  3440. +*/
  3441. defaultproperties
  3442. {
  3443. - spellIcon=Texture'HPBase.Icons.alohoSpellIcon'
  3444. - spellName="Flipendo"
  3445. - CastSound=None
  3446. - flyParticleEffectClass=Class'HPParticle.SmokeExplo_03'
  3447. - Gesture=Gesture'HPBase.FlipPattern'
  3448. - ImpactSound=None
  3449. - LifeSpan=0.3
  3450. - Style=STY_Translucent
  3451. + //this class is not needed so I've commented out default props -AdamJD
  3452. +
  3453. + // spellIcon=Texture'HPBase.Icons.alohoSpellIcon'
  3454. + // spellName="Flipendo"
  3455. + // CastSound=None
  3456. + // flyParticleEffectClass=Class'HPParticle.SmokeExplo_03'
  3457. + // Gesture=Gesture'HPBase.FlipPattern'
  3458. + // ImpactSound=None
  3459. + // LifeSpan=0.3
  3460. + // Style=STY_Translucent
  3461. }
  3462. diff --git a/HPBase/Classes/spelllumas.uc b/HPBase/Classes/spelllumas.uc
  3463. index 4d0951c..d656d27 100644
  3464. --- a/HPBase/Classes/spelllumas.uc
  3465. +++ b/HPBase/Classes/spelllumas.uc
  3466. @@ -2,6 +2,8 @@
  3467.  
  3468. class spelllumas extends BASESPELL;
  3469.  
  3470. +//Edited by- AdamJD (edited code will have AdamJD by it)
  3471. +
  3472. #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10
  3473. #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0
  3474. #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1
  3475. @@ -13,7 +15,7 @@ class spelllumas extends BASESPELL;
  3476. #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE
  3477. #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage
  3478.  
  3479. -#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=..\HPMenu\TEXTURES\HUD\alohSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  3480. +//#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=TEXTURES\alohoSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //not needed -AdamJD
  3481.  
  3482. #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p
  3483.  
  3484. @@ -51,7 +53,7 @@ function PlayIncantateSound(bool bSneaking)
  3485.  
  3486. defaultproperties
  3487. {
  3488. - spellIcon=Texture'HPBase.Icons.alohoSpellIcon'
  3489. + //spellIcon=Texture'HPBase.Icons.alohoSpellIcon' //not needed -AdamJD
  3490. spellName="Lumas"
  3491. SpellIncantation="spells12"
  3492. QuietSpellIncantation="spells13"
  3493. diff --git a/HPBase/Classes/spellnone.uc b/HPBase/Classes/spellnone.uc
  3494. index cb8c4ce..2981b06 100644
  3495. --- a/HPBase/Classes/spellnone.uc
  3496. +++ b/HPBase/Classes/spellnone.uc
  3497. @@ -2,24 +2,29 @@
  3498.  
  3499. class spellnone extends BASESPELL;
  3500.  
  3501. +//Edited by- AdamJD (edited code will have AdamJD by it)
  3502. +
  3503. +//not needed -AdamJD
  3504. +/*
  3505. #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10
  3506. #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0
  3507. #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1
  3508. #exec MESHMAP SCALE MESHMAP=SPELLLEVMesh X=2.0 Y=2.0 Z=2.0
  3509. #exec MESH DEFAULTANIM MESH=SPELLLEVMesh ANIM=SPELLLEVAnims
  3510.  
  3511. -// Digest and compress the animation data. Must come after the sequence declarations.
  3512. -// 'VERBOSE' gives more debugging info in UCC.log
  3513. +Digest and compress the animation data. Must come after the sequence declarations.
  3514. +'VERBOSE' gives more debugging info in UCC.log
  3515. #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE
  3516. #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage
  3517.  
  3518. -#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=..\HPMenu\TEXTURES\HUD\alohSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  3519. +#EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=TEXTURES\alohoSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
  3520.  
  3521. #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p
  3522.  
  3523.  
  3524. -// Import the pattern
  3525. +Import the pattern
  3526. #exec PATTERN IMPORT PATTERN=FlipPattern FILE=Patterns/Flipendo.hpg
  3527. +*/
  3528.  
  3529. function PostBeginPlay()
  3530. {
  3531. @@ -29,13 +34,14 @@ function PostBeginPlay()
  3532.  
  3533. defaultproperties
  3534. {
  3535. - spellIcon=Texture'HPBase.Icons.alohoSpellIcon'
  3536. - spellName="Flipendo"
  3537. + //spellIcon=Texture'HPBase.Icons.alohoSpellIcon' //not needed -AdamJD
  3538. + //spellName="Flipendo" //not needed -AdamJD
  3539. CastSound=Sound'HPSounds.magic_sfx.spell_dud'
  3540. - flyParticleEffectClass=Class'HPParticle.SmokeExplo_03'
  3541. - Gesture=Gesture'HPBase.FlipPattern'
  3542. + //flyParticleEffectClass=Class'HPParticle.SmokeExplo_03' //not needed -AdamJD
  3543. + //Gesture=Gesture'HPBase.FlipPattern' //not needed -AdamJD
  3544. ImpactSound=None
  3545. - LifeSpan=0.3
  3546. - Style=STY_Translucent
  3547. - Texture=Texture'HPParticle.hp_fx.Particles.Smoke5'
  3548. + //LifeSpan=0.3 //retail default prop -AdamJD
  3549. + LifeSpan=0.01 //AdamJD
  3550. + //Style=STY_Translucent //not needed -AdamJD
  3551. + //Texture=Texture'HPParticle.hp_fx.Particles.Smoke5' //not needed -AdamJD
  3552. }
  3553. diff --git a/HarryPotter/Classes/BroomHarry.uc b/HarryPotter/Classes/BroomHarry.uc
  3554. index 40a4726..209f673 100644
  3555. --- a/HarryPotter/Classes/BroomHarry.uc
  3556. +++ b/HarryPotter/Classes/BroomHarry.uc
  3557. @@ -3,6 +3,8 @@
  3558. //=============================================================================
  3559. class BroomHarry extends Harry;
  3560.  
  3561. +//Edited by- AdamJD (edited code will have AdamJD by it)
  3562. +
  3563. var float fPitchControl; // Range +1.0 to -1.0 (up/down)
  3564. var float fYawControl; // Range +1.0 to -1.0 (right/left)
  3565. var float fRotationRateYaw; // Yaw uses this because Roll is tied to RotationRate.Yaw for some reason
  3566. @@ -754,7 +756,7 @@ state PlayerWalking // Well, flying actually; but as his normal mode of getting
  3567. }
  3568.  
  3569. // Update rotation.
  3570. - UpdateRotation(DeltaTime, 1);
  3571. + UpdateRotation(DeltaTime, 1);
  3572. GetAxes(Rotation,X,Y,Z);
  3573.  
  3574. // Update acceleration.
  3575. @@ -829,16 +831,20 @@ state PlayerWalking // Well, flying actually; but as his normal mode of getting
  3576. {
  3577. local rotator NewRotation;
  3578. local float YawVal;
  3579. + local float YawValY; //AdamJD local float
  3580. local float DeltaYaw;
  3581. local int nDeltaYaw;
  3582. local float DeltaPitch;
  3583. local float fPitchLimitHi;
  3584. local float fPitchLimitLo;
  3585. local float fEffectiveMousePitch;
  3586. +
  3587. + YawValY = YawVal; //set YawVal to YawValY -AdamJD
  3588.  
  3589. NewRotation = Rotation;
  3590. fPitchLimitHi = PitchLimitUp * (0x4000/90.0);
  3591. fPitchLimitLo = 0x00010000 - (PitchLimitDown * (0x4000/90.0));
  3592. +
  3593.  
  3594. // Modify pitch using current input source
  3595. if ( bPitchUnderMouse )
  3596. @@ -944,7 +950,9 @@ state PlayerWalking // Well, flying actually; but as his normal mode of getting
  3597. fLastTimeAvoidedWall = -1.0f; // Forget Harry was ever trying to avoid wall; player overrode
  3598.  
  3599. bHittingWall = false;
  3600. -
  3601. +
  3602. + //old retail code -AdamJD
  3603. + /*
  3604. // Apply yaw control
  3605. if ( fYawControl > 1.0 )
  3606. fYawControl = 1.0;
  3607. @@ -953,18 +961,58 @@ state PlayerWalking // Well, flying actually; but as his normal mode of getting
  3608. YawVal = fRotationRateYaw * DeltaTime * fYawControl;
  3609. if(Acceleration == vect(0,0,0))
  3610. YawVal = 4.0/3.0 * YawVal;
  3611. -
  3612. - ViewRotation.Yaw += yawVal;
  3613. + */
  3614. +
  3615. + //get the SmoothMouseX & SmoothMouseY axis and cap it to not overshoot input -AdamJD
  3616. + YawVal= (SmoothMouseX / 1.5) * DeltaTime;
  3617. + YawValY = (SmoothMouseY / 1.5) * DeltaTime;
  3618. +
  3619. + //limit SmoothMouseX -AdamJD
  3620. + if(YawVal == SmoothMouseX)
  3621. + {
  3622. + if( YawVal > MAX_MOUSE_DELTA_X )
  3623. + {
  3624. + YawVal = MAX_MOUSE_DELTA_X;
  3625. + }
  3626. +
  3627. + else if( YawVal < MIN_MOUSE_DELTA_X )
  3628. + {
  3629. + YawVal = MIN_MOUSE_DELTA_X;
  3630. + }
  3631. + }
  3632. +
  3633. + //limit SmoothMouseY -AdamJD
  3634. + if(YawValY == SmoothMouseY)
  3635. + {
  3636. + if( YawValY > MAX_MOUSE_DELTA_Y )
  3637. + {
  3638. + YawValY = MAX_MOUSE_DELTA_Y;
  3639. + }
  3640. +
  3641. + else if( YawValY < MIN_MOUSE_DELTA_Y )
  3642. + {
  3643. + YawValY = MIN_MOUSE_DELTA_Y;
  3644. + }
  3645. + }
  3646. +
  3647. + ViewRotation.Yaw += YawVal; //retail code -AdamJD
  3648. + ViewRotation.Pitch += YawValY; //set YawValY to ViewRotation.Pitch -AdamJD
  3649. +
  3650. + DesiredRotation.Yaw = ViewRotation.Yaw; //set ViewRotation.Yaw to DesiredRotation.Yaw -AdamJD
  3651. + DesiredRotation.Pitch = ViewRotation.Pitch; //set ViewRotation.Pitch to DesiredRotation.Pitch -AdamJD
  3652.  
  3653. // Log( "YawControl, YawVal: "$fYawControl$", "$YawVal );
  3654.  
  3655. - ViewShake(deltaTime);
  3656. -
  3657. - NewRotation.Yaw = ViewRotation.Yaw;
  3658. + //ViewShake(deltaTime); //old retail code -AdamJD
  3659. +
  3660. + //NewRotation.Yaw = ViewRotation.Yaw; //old retail code -AdamJD
  3661. + NewRotation.Yaw = cam.rotation.Yaw; //move Harry and camera at the same time when moving mouse left or right -AdamJD
  3662. + NewRotation.Pitch = cam.rotation.Pitch; //move Harry and camera at the same time when moving mouse up or down -AdamJD
  3663.  
  3664. // Commit new rotation
  3665. - setRotation(NewRotation);
  3666. - DesiredRotation = Rotation; //Make physicsRotation leave rotation alone
  3667. + setRotation(NewRotation); //retail code -AdamJD
  3668. + DesiredRotation = ViewRotation; //set ViewRotation to DesiredRotation -AdamJD
  3669. + //DesiredRotation = Rotation; //old retail code -AdamJD
  3670. // ClientMessage("Rotation="$Rotation);
  3671. }
  3672.  
  3673. @@ -1246,7 +1294,7 @@ Begin:
  3674. FinishAnim();
  3675. Referee.OnPlayerDying();
  3676. LoopAnim( 'Hang' );
  3677. - Cam.GotoState( 'TopDownState' );
  3678. + // Cam.GotoState( 'TopDownState' ); //not needed -AdamJD
  3679. SetPhysics( PHYS_Falling );
  3680. SetTimer( 10.0, false ); // Watchdog timer in case Harry never reaches ground
  3681.  
  3682. @@ -1273,7 +1321,7 @@ state Catching
  3683. {
  3684. ClientMessage( "BroomHarry: End GetOnPath" );
  3685. Log( "BroomHarry: End GetOnPath" );
  3686. -// StopFlyingOnPath();
  3687. + // StopFlyingOnPath();
  3688. }
  3689.  
  3690. event FinishedInterpolation( InterpolationPoint Other )
  3691. @@ -1289,9 +1337,10 @@ state Catching
  3692. }
  3693.  
  3694. Begin:
  3695. + //not needed -AdamJD
  3696. + // if ( TargetToCatch == LookForTarget )
  3697. + // SetLookForTarget( None );
  3698. // Start catch animation
  3699. - if ( TargetToCatch == LookForTarget )
  3700. - SetLookForTarget( None );
  3701. PlayAnim( 'Catch', , 0.1 );
  3702.  
  3703. Sleep( 0.4 ); // Dead reckon when Catch animation has Harry's hand closing in around target
  3704. @@ -1307,9 +1356,10 @@ Begin:
  3705. FinishAnim();
  3706. SetSecondaryAnimation( 'Hold', , 0.1 );
  3707.  
  3708. + //not needed -AdamJD
  3709. // Reverse camera
  3710. - Cam.GotoState( 'ReverseState' );
  3711. - StandardTarget.TargetOffset = vect(-100, 10 ,50);
  3712. + // Cam.GotoState( 'ReverseState' );
  3713. + // StandardTarget.TargetOffset = vect(-100, 10 ,50);
  3714.  
  3715. // WIll still be in lockaroundharrymode
  3716. // Cam.TargetRot = rot(5000, 0, 0);
  3717. @@ -1339,4 +1389,5 @@ defaultproperties
  3718. Mesh=SkeletalMesh'HarryPotter.skremharryMesh'
  3719. bAlignBottom=False
  3720. RotationRate=(Pitch=24000,Roll=6000)
  3721. + bHidden=False //AdamJD
  3722. }
  3723. diff --git a/HarryPotter/Classes/Harry.uc b/HarryPotter/Classes/Harry.uc
  3724. index 388d32a..dcbf36a 100644
  3725. --- a/HarryPotter/Classes/Harry.uc
  3726. +++ b/HarryPotter/Classes/Harry.uc
  3727. @@ -2,6 +2,13 @@
  3728. // Harry -- hero character
  3729. //=============================================================================
  3730. class Harry extends baseHarry;
  3731. +//---------------------------------------------------------------------------------------------------------------------------------------------------
  3732. +//Edited by- AdamJD (edited code will have AdamJD by it)
  3733. +//---------------------------------------------------------------------------------------------------------------------------------------------------
  3734. +//Description- Tried to make Harrys movement similar to HP2 and improved climbing. All edited code is UScript (no C++)
  3735. +//---------------------------------------------------------------------------------------------------------------------------------------------------
  3736. +//Edited Dates- Between: 30/09/2019-20/12/2019 (DD/MM/YYYY)
  3737. +//---------------------------------------------------------------------------------------------------------------------------------------------------
  3738.  
  3739. //#exec MESH ORIGIN MESH=skHarryMesh X=0 Y=0 Z=28 YAW=0 PITCH=0 ROLL=0
  3740. //#exec MESH WEAPONATTACH MESH=skHarryMesh BONE="RightHand"
  3741. @@ -102,9 +109,88 @@ var float fFallingZ; //try and save your z when you start falling.
  3742. var vector MountDelta;
  3743. var actor MountBase;
  3744.  
  3745. +//my playercasting var -AdamJD
  3746. +var bool bPlayerCasting; //is the player casting?
  3747.  
  3748. +//for BroomHarry and the chess board -AdamJD
  3749. +const MIN_MOUSE_DELTA_X = -20000.0f;
  3750. +const MAX_MOUSE_DELTA_X = 20000.0f;
  3751. +const MIN_MOUSE_DELTA_Y = -10000.0f;
  3752. +const MAX_MOUSE_DELTA_Y = 10000.0f;
  3753.  
  3754. -//Play a sound client side (so only client will hear it
  3755. +//**********************************************************************************************
  3756. +//moved to near the top... where it should be -AdamJD
  3757. +event PreBeginPlay()
  3758. +{
  3759. + Super.PreBeginPlay();
  3760. +
  3761. + foreach AllActors(class'baseNarrator', theNarrator)
  3762. + break;
  3763. + if(theNarrator==None)
  3764. + {
  3765. + theNarrator=spawn(class 'Narrator');
  3766. + Log("Narrator spawned:" $theNarrator);
  3767. + }
  3768. +
  3769. +}
  3770. +
  3771. +//moved to near the top... where it should be -AdamJD
  3772. +function PostBeginPlay()
  3773. +{
  3774. + local Pawn p;
  3775. + local weapon weap;
  3776. + Super.PostBeginPlay();
  3777. +
  3778. + b3DSound = bool(ConsoleCommand("get ini:Engine.Engine.AudioDevice Use3dHardware"));
  3779. +
  3780. + bShowMenu=false;
  3781. + log("weapon is" $weapon);
  3782. + if(inventory==none)
  3783. + {
  3784. + weap=spawn(class'baseWand');
  3785. + weap.BecomeItem();
  3786. + AddInventory(weap);
  3787. + weap.WeaponSet(self);
  3788. + weap.GiveAmmo(self);
  3789. + baseWand(weap).bUseMana=false;
  3790. + log(self$ " spawning weap " $weap);
  3791. + }
  3792. + else
  3793. + {
  3794. + log("not spawning weap");
  3795. + }
  3796. +
  3797. + iFireSeedCount = 0;
  3798. +
  3799. + HUDType=class'HPMenu.HPHud';
  3800. +
  3801. + ForEach AllActors( class'baseCam', cam )
  3802. + break;
  3803. + if( cam == none )
  3804. + cam = spawn( class'baseCam' );
  3805. +
  3806. + viewClass(class'baseCam', true);
  3807. + //viewClass(class 'BaseCam', true);
  3808. + // @PAB added new camera target
  3809. + //makeCamTarget(); //not needed -AdamJD
  3810. +
  3811. + // Harry gets a shadow, bigger than normal.
  3812. + Shadow = Spawn(ShadowClass,self);
  3813. + log( self$ " ShadowClass=" $ShadowClass$ " shadow=" $Shadow$ " tex=" $Shadow.Texture );
  3814. +
  3815. +// @PAB temp give a spell to Harry
  3816. + //baseWand(weap).addSpell(Class'spellDud'); //not needed -AdamJD
  3817. +// baseWand(weap).addSpell(Class'spellflip');
  3818. +// baseWand(weap).addSpell(Class'spellALOho');
  3819. +// baseWand(weap).SelectSpell(Class'spellFlip');
  3820. +
  3821. + HarryAnimChannel = cHarryAnimChannel( CreateAnimChannel(class'cHarryAnimChannel', AT_Replace, 'harry spine1') );
  3822. + HarryAnimChannel.SetOwner( self );
  3823. +
  3824. + basewand(weapon).ChooseSpell( SPELL_None ); //set wand to no spell when first loaded -AdamJD
  3825. +}
  3826. +
  3827. +//Play a sound client side (so only client will hear it)
  3828. simulated function ClientPlaySound(sound ASound, optional bool bInterrupt, optional bool bVolumeControl )
  3829. {
  3830. local actor SoundPlayer;
  3831. @@ -142,7 +228,6 @@ simulated function ClientPlaySound(sound ASound, optional bool bInterrupt, optio
  3832. SoundPlayer.PlaySound(ASound, SLOT_Talk, 16.0, bInterrupt);
  3833. }
  3834.  
  3835. -
  3836. function DebugState()
  3837. {
  3838. // BaseHUD(MyHUD).DebugString2 = string(GetStateName());
  3839. @@ -152,7 +237,7 @@ function DebugState()
  3840. }
  3841.  
  3842. function TurnDebugModeOn()
  3843. -{
  3844. +{
  3845. hpconsole(player.console).bDebugMode = true;
  3846. }
  3847.  
  3848. @@ -180,10 +265,10 @@ function TakeDamage( int Damage, Pawn instigatedBy, Vector hitlocation,
  3849. if( DamageType == 'ZonePain' || DamageType == 'pit' )
  3850. {
  3851. //AE:
  3852. - //if( FRand() < 0.5 )
  3853. - // theNarrator.FindEmote("EmotiveHarry13", snd);
  3854. - //else
  3855. - // theNarrator.FindEmote("EmotiveHarry14", snd);
  3856. + // if( FRand() < 0.5 )
  3857. + // theNarrator.FindEmote("EmotiveHarry13", snd);
  3858. + // else
  3859. + // theNarrator.FindEmote("EmotiveHarry14", snd);
  3860.  
  3861. PlaySound( snd );
  3862.  
  3863. @@ -393,6 +478,7 @@ function DoJump( optional float F )
  3864. {
  3865. local baseProps a;
  3866. local float TmpJumpZ;
  3867. + local float s; //AdamJD local float
  3868.  
  3869. if( bKeepStationary )
  3870. return;
  3871. @@ -420,6 +506,8 @@ function DoJump( optional float F )
  3872. */
  3873. TmpJumpZ = JumpZ;
  3874.  
  3875. + //not needed -AdamJD
  3876. + /*
  3877. //See if you're standing on a double jump actor
  3878. //foreach TouchingActors( class'baseProps', a )
  3879. foreach allactors( class'baseProps', a )
  3880. @@ -437,11 +525,20 @@ function DoJump( optional float F )
  3881. break;
  3882. }
  3883. }
  3884. + */
  3885.  
  3886. Velocity.Z += TmpJumpZ;
  3887.  
  3888. if ( (Base != Level) && (Base != None) )
  3889. - Velocity += Base.Velocity;
  3890. + Velocity += Base.Velocity;
  3891. +
  3892. + //let player cast if jumping -AdamJD
  3893. + if (bPlayerCasting)
  3894. + {
  3895. + HarryAnimType = AT_Replace;
  3896. + HarryAnimChannel.GotoStateCasting();
  3897. + PlayAnim('jump');
  3898. + }
  3899.  
  3900. SetPhysics(PHYS_Falling);
  3901. }
  3902. @@ -534,7 +631,7 @@ function Gasp()
  3903.  
  3904. function PlayTurning()
  3905. {
  3906. - PlayAnim('Turn', [Type] HarryAnimType);
  3907. + PlayAnim('Turn', [Type] HarryAnimType);
  3908. }
  3909.  
  3910. function TweenToRunning(float tweentime)
  3911. @@ -542,15 +639,18 @@ function TweenToRunning(float tweentime)
  3912. local vector X,Y,Z, Dir;
  3913.  
  3914. BaseEyeHeight = Default.BaseEyeHeight;
  3915. -
  3916. - if (bIsWalking)
  3917. - {
  3918. - TweenToWalking(0.1);
  3919. - return;
  3920. - }
  3921. -
  3922. +
  3923. + //not needed -AdamJD
  3924. + // if (bIsWalking)
  3925. + // {
  3926. + // TweenToWalking(0.1);
  3927. + // return;
  3928. + // }
  3929. +
  3930. GetAxes(Rotation, X,Y,Z);
  3931. Dir = Normal(Acceleration);
  3932. + //old retail code -AdamJD
  3933. + /*
  3934. if ( (Dir Dot X < 0.75) && (Dir != vect(0,0,0)) )
  3935. {
  3936. // strafing or backing up
  3937. @@ -558,12 +658,12 @@ function TweenToRunning(float tweentime)
  3938. {
  3939. PlayAnim('runback', 0.9, tweentime, HarryAnimType );
  3940. bMovingBackwards=true;
  3941. - //Velocity.X = Velocity.X / 2;
  3942. + //Velocity.X /= 2;
  3943. }
  3944. else if ( Dir Dot Y > 0 )
  3945. {
  3946. PlayAnim('StrafeRight', 0.9, tweentime, HarryAnimType );
  3947. - //Velocity.Y
  3948. + //Velocity.Y /=2;
  3949. }
  3950. else
  3951. PlayAnim('StrafeLeft', 0.9, tweentime, HarryAnimType );
  3952. @@ -572,11 +672,51 @@ function TweenToRunning(float tweentime)
  3953. {
  3954. PlayAnim('run', 0.9, tweentime, HarryAnimType );
  3955. bMovingBackwards=false;
  3956. - }
  3957. + }
  3958. + */
  3959. +
  3960. + //code copied from PlayRunning -AdamJD
  3961. + if ( (Dir Dot X < 0.75) && (Dir != vect(0,0,0)) )
  3962. + {
  3963. + // strafing or backing up
  3964. + if ( Dir Dot X < -0.75 )
  3965. + {
  3966. + LoopAnim('runback', [Type] HarryAnimType);
  3967. + bMovingBackwards=true;
  3968. + //Velocity.X /= 2;
  3969. + }
  3970. + else if ( Dir Dot Y > 0 )
  3971. + {
  3972. + LoopAnim('StrafeRight', [Type] HarryAnimType);
  3973. + //clientmessage("strafe right");
  3974. + //Velocity.Y /= 2;
  3975. + }
  3976. + else
  3977. + {
  3978. + LoopAnim('StrafeLeft', [Type] HarryAnimType);
  3979. + }
  3980. + }
  3981. +
  3982. + //player has pressed the forward input so play the run anim -AdamJD
  3983. + else if ( Dir Dot X >= 0.75 && (Dir != vect(0,0,0)) )
  3984. + {
  3985. + LoopAnim('run', [Type] HarryAnimType);
  3986. + bMovingBackwards=false;
  3987. + }
  3988. +
  3989. + //stops Harry if player is pressing left and right inputs at the same time -AdamJD
  3990. + else
  3991. + {
  3992. + LoopAnim('breath', [Type] HarryAnimType);
  3993. + Dir = vect(0,0,0);
  3994. + }
  3995. }
  3996.  
  3997. function PlayRunning()
  3998. {
  3999. + TweenToRunning( 0 );
  4000. + //not needed -AdamJD
  4001. + /*
  4002. local vector X,Y,Z, Dir;
  4003.  
  4004. BaseEyeHeight = Default.BaseEyeHeight;
  4005. @@ -592,12 +732,13 @@ function PlayRunning()
  4006. {
  4007. LoopAnim('runback', [Type] HarryAnimType);
  4008. bMovingBackwards=true;
  4009. - Velocity.X = Velocity.X / 2;
  4010. + //Velocity.X /= 2;
  4011. }
  4012. else if ( Dir Dot Y > 0 )
  4013. {
  4014. LoopAnim('StrafeRight', [Type] HarryAnimType);
  4015. - clientmessage("strafe right");
  4016. + //clientmessage("strafe right");
  4017. + //Velocity.Y /= 2;
  4018. }
  4019. else
  4020. {
  4021. @@ -608,9 +749,7 @@ function PlayRunning()
  4022. {
  4023. LoopAnim('run', [Type] HarryAnimType);
  4024. bMovingBackwards=false;
  4025. -
  4026. - }
  4027. -
  4028. + }*/
  4029. }
  4030.  
  4031.  
  4032. @@ -623,9 +762,10 @@ function PlayinAir()
  4033. {
  4034. bPlayedFallSound = true;
  4035. PlaySound( sound'HPSounds.HAR_emotes.falldeep2' );
  4036. +
  4037. }
  4038. }
  4039. -
  4040. +
  4041. loopAnim('fall');
  4042. }
  4043.  
  4044. @@ -643,6 +783,20 @@ function PlayCrawling()
  4045. LoopAnim('SneakF');
  4046. }
  4047.  
  4048. +//stop Harry walking with his arms down after playing the cast anim (he walked like a penguin...) -AdamJD
  4049. +function PlayFinishCastAnim()
  4050. +{
  4051. + LoopAnim('breath', 0.10, 0.5, HarryAnimType);
  4052. + gotoState('PlayerWalking');
  4053. +}
  4054. +
  4055. +//stop Harry walking with his arms up after throwing a wizard cracker -AdamJD
  4056. +function PlayFinishThrowCrackerAnim()
  4057. +{
  4058. + LoopAnim('breath', 0.10, 0.5, HarryAnimType);
  4059. + gotoState('PlayerWalking');
  4060. +}
  4061. +
  4062. function PlayWaiting()
  4063. {
  4064. local name newAnim;
  4065. @@ -652,59 +806,62 @@ function PlayWaiting()
  4066.  
  4067. //keep idle from happening as soon as a level loads
  4068. WaitingCount++;
  4069. - if(WaitingCount<2) //do breath first three times you get here.
  4070. + if(!bPlayerCasting) //don't do this if casting -AdamJD
  4071. + {
  4072. + if(WaitingCount<2) //do breath first three times you get here.
  4073. + {
  4074. + LoopAnim('breath', 0.4 + 0.4 * FRand(), 0.25, , HarryAnimType);
  4075. + return;
  4076. + }
  4077. +
  4078. + if ( FRand() < 0.3)
  4079. {
  4080. - LoopAnim('breath', 0.4 + 0.4 * FRand(), 0.25, , HarryAnimType);
  4081. - return;
  4082. + LoopAnim('breath', 0.4 + 0.4 * FRand(), 0.25, , HarryAnimType);
  4083. + }
  4084. + else if(FRand() < 0.03 )
  4085. + {
  4086. + WaitingCount=0;
  4087. + PlayAnim('Look', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4088. + }
  4089. + else if(FRand() < 0.03 )
  4090. + {
  4091. + WaitingCount=0;
  4092. + PlayAnim('Scratch', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4093. + }
  4094. + else if(FRand() < 0.03 )
  4095. + {
  4096. + WaitingCount=0;
  4097. + PlayAnim('Scratch', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4098. + }
  4099. + else if(FRand() < 0.03 )
  4100. + {
  4101. + WaitingCount=0;
  4102. + PlayAnim('lookwand', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4103. + }
  4104. + else if(FRand() < 0.03 )
  4105. + {
  4106. + WaitingCount=0;
  4107. + PlayAnim('adjustglasses', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4108. + }
  4109. + else if(FRand() < 0.03 )
  4110. + {
  4111. + WaitingCount=0;
  4112. + PlayAnim('look2', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4113. + }
  4114. + else if(FRand() < 0.03 )
  4115. + {
  4116. + WaitingCount=0;
  4117. + PlayAnim('look3', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4118. + }
  4119. + else if(FRand() < 0.03 )
  4120. + {
  4121. + WaitingCount=0;
  4122. + PlayAnim('look4', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4123. + }
  4124. + else
  4125. + {
  4126. + LoopAnim('breath', 0.4 + 0.4 * FRand(), 0.25, , HarryAnimType);
  4127. }
  4128. -
  4129. - if ( FRand() < 0.3)
  4130. - {
  4131. - LoopAnim('breath', 0.4 + 0.4 * FRand(), 0.25, , HarryAnimType);
  4132. - }
  4133. - else if(FRand() < 0.03 )
  4134. - {
  4135. - WaitingCount=0;
  4136. - PlayAnim('Look', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4137. - }
  4138. - else if(FRand() < 0.03 )
  4139. - {
  4140. - WaitingCount=0;
  4141. - PlayAnim('Scratch', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4142. - }
  4143. - else if(FRand() < 0.03 )
  4144. - {
  4145. - WaitingCount=0;
  4146. - PlayAnim('Scratch', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4147. - }
  4148. - else if(FRand() < 0.03 )
  4149. - {
  4150. - WaitingCount=0;
  4151. - PlayAnim('lookwand', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4152. - }
  4153. - else if(FRand() < 0.03 )
  4154. - {
  4155. - WaitingCount=0;
  4156. - PlayAnim('adjustglasses', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4157. - }
  4158. - else if(FRand() < 0.03 )
  4159. - {
  4160. - WaitingCount=0;
  4161. - PlayAnim('look2', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4162. - }
  4163. - else if(FRand() < 0.03 )
  4164. - {
  4165. - WaitingCount=0;
  4166. - PlayAnim('look3', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4167. - }
  4168. - else if(FRand() < 0.03 )
  4169. - {
  4170. - WaitingCount=0;
  4171. - PlayAnim('look4', 0.5 + 0.5 * FRand(), 0.3, HarryAnimType);
  4172. - }
  4173. - else
  4174. - {
  4175. - LoopAnim('breath', 0.4 + 0.4 * FRand(), 0.25, , HarryAnimType);
  4176. }
  4177. }
  4178.  
  4179. @@ -730,10 +887,23 @@ function Cast()
  4180. defaultAngle.pitch = 0;
  4181. defaultYaw = defaultAngle.yaw;
  4182. defaultYaw = defaultYaw & 0xffff;
  4183. +
  4184. + //old code by me -AdamJD
  4185. + /*
  4186. + bOldStrafingState = (bStrafe != 0);
  4187. +
  4188. + MovementMode(true);
  4189. +
  4190. + if (bPressedJump)
  4191. + {
  4192. + DoJump();
  4193. + bPressedJump = false;
  4194. + }
  4195. + */
  4196.  
  4197. if (defaultyaw > 0x7fff)
  4198. {
  4199. - defaultyaw = defaultyaw - 0x10000;
  4200. + defaultyaw -= 0x10000;
  4201. }
  4202.  
  4203. bestTarget = none;
  4204. @@ -782,20 +952,15 @@ function Cast()
  4205. }
  4206.  
  4207. //Weapon.AltFire(1.0);
  4208. - rectarget.destroy();
  4209. + rectarget.destroy();
  4210. + //turn off wand casting -AdamJD
  4211. + basewand(weapon).bCasting=false;
  4212. }
  4213.  
  4214.  
  4215. // The player wants to fire.
  4216. exec function Fire( optional float F )
  4217. -{
  4218. -
  4219. - if( Weapon!=None && bJustFired == false)
  4220. - {
  4221. -
  4222. - Weapon.bPointing = true;
  4223. - //PlayAnim('wave');
  4224. - }
  4225. +{
  4226. bJustFired = true;
  4227. }
  4228.  
  4229. @@ -806,9 +971,20 @@ exec function AltFire( optional float F )
  4230. local rotator r;
  4231.  
  4232. // If Harry is frozen, disable firing
  4233. -
  4234. - if (IsInState('HarryFrozen') || Physics == PHYS_Falling || baseHud(myhud).bCutSceneMode == true)
  4235. + if (IsInState('HarryFrozen') || baseHud(myhud).bCutSceneMode == true) //|| Physics == PHYS_Falling //can now cast when falling -AdamJD
  4236. {
  4237. + //stop casting if in cutscene/Harry is frozen (can't get cursor to turn off, pissing me off) -AdamJD
  4238. + //Update: Putting this in PlayerWalking instead fixed it... -AdamJD
  4239. + /*
  4240. + if(bPlayerCasting == true)
  4241. + {
  4242. + baseWand(weapon).bPointing = false;
  4243. + basewand(weapon).bCasting=false;
  4244. + baseWand(weapon).WandEffect.bHidden = true;
  4245. + rectarget.destroy();
  4246. + return;
  4247. + }
  4248. + */
  4249. return;
  4250. }
  4251.  
  4252. @@ -827,20 +1003,52 @@ exec function AltFire( optional float F )
  4253. else
  4254. {
  4255. if( Weapon != None
  4256. - && bJustAltFired == false
  4257. + //&& bJustAltFired == false
  4258. && CarryingActor == none //you're not carrying an actor in your hand
  4259. + && !bPlayerCasting //player is not already casting -AdamJD
  4260. )
  4261. {
  4262. - ClientMessage("Harry::AltFire");
  4263. - Weapon.bPointing = true;
  4264. + //ClientMessage("Harry::AltFire");
  4265. + //Weapon.bPointing = true;
  4266. // PlaySound(sound'spell1', SLOT_Interact, 2.2, false, 1000.0, 1.0);
  4267. // weapon.altfire(1);
  4268. -
  4269. - bJustAltFired = true;
  4270. - gotostate('playeraiming');
  4271. +
  4272. + //turn on player casting -AdamJD
  4273. + //bJustAltFired = true;
  4274. + bPlayerCasting = true;
  4275. + // Weapon.bPointing = true;
  4276. + //basewand(weapon).bCasting=true;
  4277. + StartCasting();
  4278. + //gotostate('playeraiming');
  4279. + }
  4280. +
  4281. + //turn off player casting -AdamJD
  4282. + else
  4283. + {
  4284. + //Weapon.bPointing = false;
  4285. + bPlayerCasting = false;
  4286. + StopCasting();
  4287. }
  4288. }
  4289. +}
  4290.  
  4291. +//AdamJD
  4292. +function StartCasting()
  4293. +{
  4294. + //leaving this empty goes to the StartCasting function in state PlayerWalking instead
  4295. +}
  4296. +
  4297. +//AdamJD
  4298. +function StopCasting()
  4299. +{
  4300. + //leaving this empty goes to the StopCasting function in state PlayerWalking instead
  4301. +}
  4302. +
  4303. +//stop spell/wand noises -AdamJD
  4304. +function StopSoundFX()
  4305. +{
  4306. + StopSound(sound'HPSounds.Magic_sfx.spell_build_nl2', SLOT_Misc);
  4307. + StopSound(sound'HPSounds.Magic_sfx.spell_loop_nl', SLOT_Interact);
  4308. }
  4309.  
  4310. event Mount( vector Delta )
  4311. @@ -848,15 +1056,40 @@ event Mount( vector Delta )
  4312. // Use Destination to store dest, as moveTo won't be called here.
  4313. Destination = Location+Delta;
  4314. MountBase = Base;
  4315. +
  4316. if( Physics == PHYS_Falling )
  4317. {
  4318. bFallingMount = true;
  4319. gotoState('FallingMount');
  4320. +
  4321. + //stop Harry casting when climbing -AdamJD
  4322. + if(bPlayerCasting == true)
  4323. + {
  4324. + bPlayerCasting = false;
  4325. + StopCasting();
  4326. + baseWand(weapon).bPointing = false;
  4327. + basewand(weapon).bCasting=false;
  4328. + baseWand(Weapon).WandEffect.bHidden = true;
  4329. + rectarget.destroy();
  4330. + StopSoundFX();
  4331. + }
  4332. }
  4333. else
  4334. {
  4335. bFallingMount = false;
  4336. gotoState('Mounting');
  4337. +
  4338. + //stop Harry casting when climbing -AdamJD
  4339. + if(bPlayerCasting == true)
  4340. + {
  4341. + bPlayerCasting = false;
  4342. + StopCasting();
  4343. + baseWand(weapon).bPointing = false;
  4344. + basewand(weapon).bCasting=false;
  4345. + baseWand(Weapon).WandEffect.bHidden = true;
  4346. + rectarget.destroy();
  4347. + StopSoundFX();
  4348. + }
  4349. }
  4350. }
  4351.  
  4352. @@ -867,7 +1100,9 @@ state FallingMount
  4353. event PlayerTick( float DeltaTime )
  4354. {
  4355. global.PlayerTick( DeltaTime );
  4356. -
  4357. +
  4358. + DesiredRotation.Pitch = 0; //copied from the HP2 proto -AdamJD
  4359. +
  4360. // Adjust destination by player and base movement.
  4361. Destination.X += Location.X - OldLocation.X;
  4362. Destination.Y += Location.Y - OldLocation.Y;
  4363. @@ -893,9 +1128,11 @@ state FallingMount
  4364. function Landed(vector HitNormal)
  4365. {
  4366. PlaySound(Sound'HPSounds.HAR_emotes.landing5', SLOT_Interact,1, false, 1000.0, 0.9);
  4367. - gotoState('Mounting');
  4368. + //gotoState('Mounting'); //not needed -AdamJD
  4369. }
  4370. -
  4371. +
  4372. + //not needed -AdamJD
  4373. + /*
  4374. function BeginState()
  4375. {
  4376. DebugState();
  4377. @@ -903,15 +1140,28 @@ state FallingMount
  4378. // Start tweening to proper animation.
  4379. playAnim('climb96end', [Rate] 0, [TweenTime] 0.5, [RootBone] 'move');
  4380. }
  4381. + */
  4382.  
  4383. begin:
  4384. // Start turning here as well.
  4385. - TurnTo( vec(Destination.X, Destination.Y, Location.Z) );
  4386. + //TurnTo( vec(Destination.X, Destination.Y, Location.Z) ); //not needed -AdamJD
  4387. +
  4388. + //copied from the HP2 proto -AdamJD
  4389. + DesiredRotation.Yaw = rotator( vec(Destination.X, Destination.Y, Location.Z) - Location ).yaw;
  4390. + DesiredRotation.Pitch = 0;
  4391. + gotoState ('Mounting');
  4392. }
  4393.  
  4394. state Mounting
  4395. {
  4396. ignores Mount, AltFire;
  4397. +
  4398. + //copied from the HP2 proto -AdamJD
  4399. + event PlayerTick( float DeltaTime )
  4400. + {
  4401. + global.PlayerTick( DeltaTime );
  4402. + DesiredRotation.Pitch = 0;
  4403. + }
  4404.  
  4405. function ProcessMove(float DeltaTime, vector NewAccel, eDodgeDir DodgeMove, rotator DeltaRot)
  4406. {
  4407. @@ -933,12 +1183,16 @@ state Mounting
  4408. begin:
  4409. // Finish turning.
  4410. TurnTo( vec(Destination.X, Destination.Y, Location.Z) );
  4411. +
  4412. + DesiredRotation.Pitch = 0; //copied from the HP2 proto -AdamJD
  4413.  
  4414. MountDelta = Destination - Location;
  4415.  
  4416. // Subtract anim movement from delta.
  4417. MountDelta -= vect(30,0,0) >> Rotation;
  4418. -
  4419. +
  4420. + //original mounting code -AdamJD
  4421. + /*
  4422. if( bFallingMount )
  4423. {
  4424. MountDelta.Z -= 82;
  4425. @@ -962,6 +1216,34 @@ begin:
  4426. MountDelta.Z -= 96;
  4427. playAnim('climb96start', [RootBone] 'move');
  4428. }
  4429. + */
  4430. +
  4431. + if( MountDelta.Z < 48 ) //for climbing from a short distance -AdamJD
  4432. + {
  4433. + MountDelta.Z -= 32;
  4434. + playAnim('climb32', [Rate] 1.0, [RootBone] 'move');
  4435. + PlaySound( sound'HPSounds.HAR_emotes.EmotiveHarry5_b_pullup6', , 0.5 );
  4436. + }
  4437. +
  4438. + else if ((MountDelta.Z >=48) && (MountDelta.Z < 80)) //for climbing from a medium distance -AdamJD
  4439. + {
  4440. + MountDelta.Z -= 64;
  4441. + playAnim('climb64', [RootBone] 'move');
  4442. + PlaySound( sound'HPSounds.HAR_emotes.EmotiveHarry5_a_pullup5', , 0.5 );
  4443. + }
  4444. +
  4445. + else if ((MountDelta.Z >=80) && (MountDelta.Z < 98)) //for climbing from a long distance -AdamJD
  4446. + {
  4447. + MountDelta.Z -= 82;
  4448. + playAnim('climb96end', [RootBone] 'move');
  4449. + PlaySound( sound'HPSounds.HAR_emotes.pull_up3', , 0.5 );
  4450. + }
  4451. +
  4452. + else //for climbing from a really long distance -AdamJD
  4453. + {
  4454. + MountDelta.Z -= 96;
  4455. + playAnim('climb96start', [RootBone] 'move');
  4456. + }
  4457.  
  4458. gotoState('MountFinish');
  4459. }
  4460. @@ -1019,6 +1301,18 @@ begin:
  4461. // Play idle anim in case nothing's happening.
  4462. playAnim('breath');
  4463. gotostate('PlayerWalking');
  4464. +
  4465. + //stop casting a spell after climbing something -AdamJD
  4466. + if(bPlayerCasting == true)
  4467. + {
  4468. + bPlayerCasting = false;
  4469. + StopCasting();
  4470. + baseWand(weapon).bPointing = false;
  4471. + basewand(weapon).bCasting=false;
  4472. + baseWand(Weapon).WandEffect.bHidden = true;
  4473. + rectarget.destroy();
  4474. + StopSoundFX();
  4475. + }
  4476. }
  4477.  
  4478. //********************************************************************************************
  4479. @@ -1069,6 +1363,12 @@ state hit
  4480.  
  4481. if( AnimSequence != 'knockback2' )
  4482. playanim('knockback2',[RootBone] 'move');
  4483. +
  4484. + //Harry used to freeze when getting hit by something and casting at the same time -AdamJD
  4485. + if (bPlayerCasting)
  4486. + {
  4487. + gotostate('PlayerWalking');
  4488. + }
  4489.  
  4490. // sleep(0.5);
  4491.  
  4492. @@ -1131,7 +1431,6 @@ function DropCarryingActor()
  4493. }
  4494.  
  4495. //********************************************************************************************
  4496. -
  4497. state PickingUpWizardCard
  4498. {
  4499. ignores AltFire;
  4500. @@ -1142,6 +1441,18 @@ state PickingUpWizardCard
  4501. aStrafe = 0;
  4502. aLookup = 0;
  4503. aTurn = 0;
  4504. +
  4505. + //turn off spell cursor if picking up wizard card -AdamJD
  4506. + if(bPlayerCasting == true)
  4507. + {
  4508. + bPlayerCasting = false;
  4509. + StopCasting();
  4510. + baseWand(weapon).bPointing = false;
  4511. + basewand(weapon).bCasting=false;
  4512. + baseWand(weapon).WandEffect.bHidden = true;
  4513. + rectarget.destroy();
  4514. + StopSoundFX();
  4515. + }
  4516. }
  4517.  
  4518. function AnimEnd()
  4519. @@ -1160,7 +1471,7 @@ state PickingUpWizardCard
  4520. GroundSpeed = fOldGroundSpeed;
  4521. // basehud(myhud).DebugString2 = "Leaving Picking up wizard card " $LastState;
  4522. cam.gotostate('StandardState');
  4523. - RestoreStateName();
  4524. + // RestoreStateName(); //not needed -AdamJD
  4525. }
  4526. }
  4527.  
  4528. @@ -1185,12 +1496,18 @@ begin:
  4529. GroundSpeed = 0;
  4530. cam.gotostate('RotateAroundHarry');
  4531. PlayAnim('wizardcardcollect');
  4532. + FinishAnim(); //let Harry finish the anim -AdamJD
  4533. + DesiredRotation.Yaw = ViewRotation.Yaw; //fixes the bug where Harry walked with his face down toward the ground after jumping into a card -AdamJD
  4534. + DesiredRotation.Pitch = ViewRotation.Pitch; //fixes the bug where Harry walked with his face down toward the ground after jumping into a card -AdamJD
  4535. + gotoState('PlayerWalking'); //go back to the PlayerWalking state -AdamJD
  4536. }
  4537. -
  4538. //********************************************************************************************
  4539. -state playeraiming
  4540. +//old not needed retail playeraiming state -AdamJD
  4541. +/*state playeraiming
  4542. {
  4543. - ignores SeePlayer, HearNoise, Bump;
  4544. +
  4545. +ignores SeePlayer, HearNoise, Bump;
  4546. +
  4547.  
  4548. // AE:
  4549. function StartSoundFX()
  4550. @@ -1207,7 +1524,7 @@ state playeraiming
  4551.  
  4552. StopSound(sound'HPSounds.Magic_sfx.spell_loop_nl', SLOT_Interact);
  4553. }
  4554. -
  4555. +
  4556. function BeginState()
  4557. {
  4558. //setphysics(phys_rotating);
  4559. @@ -1216,10 +1533,17 @@ state playeraiming
  4560.  
  4561. // basehud(myhud).DebugString2 = "in playeraiming";
  4562.  
  4563. -// bOldStrafingState = (bStrafe != 0);
  4564. + bOldStrafingState = (bStrafe != 0);
  4565.  
  4566. -// MovementMode(true);
  4567. -// PlaySound(sound'HPSounds.Magic_sfx.HAR_raise_arm', SLOT_Misc);
  4568. + MovementMode(false);
  4569. +
  4570. + // if ( bPressedJump )
  4571. + // {
  4572. + // DoJump(); // jumping
  4573. + // bPressedJump = false;
  4574. + // return;
  4575. + // }
  4576. + //PlaySound(sound'HPSounds.Magic_sfx.HAR_raise_arm', SLOT_Misc);
  4577.  
  4578. StartSoundFX();
  4579. }
  4580. @@ -1233,11 +1557,11 @@ state playeraiming
  4581. bIsCrouching = false;
  4582. //setphysics(phys_walking);
  4583.  
  4584. -/* if (!bOldStrafingState)
  4585. + if (!bOldStrafingState)
  4586. {
  4587. MovementMode(false);
  4588. }
  4589. -*/
  4590. +
  4591. //bStrafe = 0;
  4592. //bLockedOnTarget = false;
  4593. //BossTarget = none;
  4594. @@ -1247,10 +1571,19 @@ state playeraiming
  4595. // basehud(myhud).DebugString2 = "out of playeraiming";
  4596. bJustFired = false;
  4597. bJustAltFired = false;
  4598. +
  4599. + basewand(weapon).bCasting=false;
  4600. +
  4601. + // if ( bPressedJump )
  4602. + // {
  4603. + //DoJump(); // jumping
  4604. + // bPressedJump = false;
  4605. + // }
  4606. }
  4607.  
  4608. exec function AltFire( optional float F )
  4609. {
  4610. +
  4611. }
  4612.  
  4613. function AnimEnd()
  4614. @@ -1265,9 +1598,20 @@ state playeraiming
  4615. ClientUpdatePosition();
  4616.  
  4617. PlayerMove(DeltaTime);
  4618. +
  4619. + bOldStrafingState = (bStrafe != 0);
  4620.  
  4621. + MovementMode(true);
  4622. +
  4623. + // if ( bPressedJump )
  4624. + // {
  4625. + // DoJump(); // jumping
  4626. + // PlayAnim('Jump');
  4627. + // bPressedJump = false;
  4628. + // gotostate('playeraiming');
  4629. + // }
  4630. }
  4631. -
  4632. +
  4633. function PlayerMove( float DeltaTime )
  4634. {
  4635. local vector X,Y,Z, NewAccel;
  4636. @@ -1281,6 +1625,7 @@ state playeraiming
  4637. GetAxes(Rotation,X,Y,Z);
  4638.  
  4639. aForward *= 0.08;
  4640. +
  4641. if( Physics == PHYS_Falling || bLockedOnTarget)
  4642. {
  4643. aStrafe *= 0.4;
  4644. @@ -1359,9 +1704,11 @@ state playeraiming
  4645. }
  4646. }
  4647.  
  4648. - //if ( bPressedJump )
  4649. - // DoJump(); // jumping
  4650. -
  4651. + // if ( bPressedJump )
  4652. + // {
  4653. + // DoJump(); // jumping
  4654. + // bPressedJump = false;
  4655. + // }
  4656. if ( (Physics == PHYS_Walking) )
  4657. {
  4658. if ( !bIsCrouching )
  4659. @@ -1392,7 +1739,7 @@ state playeraiming
  4660.  
  4661. ///bPlayerWalking = false;
  4662.  
  4663. - if( /*!bIsTurning &&*/ (GetAnimGroup(AnimSequence) != 'Waiting'))
  4664. + if( !bIsTurning && (GetAnimGroup(AnimSequence) != 'Waiting'))
  4665. {
  4666. bAnimTransition = true;
  4667. TweenToWaiting(0.2);
  4668. @@ -1447,18 +1794,53 @@ state playeraiming
  4669. while( AnimFrame < 0.95 )
  4670. sleep( 0.001 );
  4671.  
  4672. - basewand(weapon).bCasting=false; //turn on the sparkles.
  4673. + basewand(weapon).bCasting=true; //turn on the sparkles.
  4674.  
  4675. gotostate('PlayerWalking');
  4676. }
  4677. sleep(0.001);
  4678. goto 'loopaim';
  4679. +
  4680. +}*/
  4681. +//********************************************************************************************
  4682. +//Old casting states set up by me (moved to cHarryAnimChannel class) -AdamJD
  4683. +/*
  4684. +state stateCasting
  4685. +{
  4686. + begin:
  4687. + HarryAnimType = AT_Combine;
  4688. + LoopAnim('wave', 1.0, 0.2);
  4689. + gotoState('PlayerWalking');
  4690. +}
  4691. +
  4692. +state stateCancelCasting
  4693. +{
  4694. + begin:
  4695. + PlayAnim('cast', 1.0, 0.2); //can't find a way to play no anims... -AdamJD
  4696. + FinishAnim();
  4697. +
  4698. + StopCasting();
  4699. + gotoState('PlayerWalking');
  4700. }
  4701.  
  4702. +state stateCast
  4703. +{
  4704. + function BeginState()
  4705. + {
  4706. + PlayAnim('cast', 2.0, 0.1);
  4707. + }
  4708. +
  4709. + begin:
  4710. + FinishAnim();
  4711. +
  4712. + StopCasting();
  4713. + gotoState('PlayerWalking');
  4714. +}
  4715. +*/
  4716. //********************************************************************************************
  4717. state PlayerWalking
  4718. {
  4719. -ignores SeePlayer, HearNoise, Bump;
  4720. +ignores SeePlayer, HearNoise, Bump;
  4721.  
  4722. function ZoneChange( ZoneInfo NewZone )
  4723. {
  4724. @@ -1504,7 +1886,7 @@ ignores SeePlayer, HearNoise, Bump;
  4725. }
  4726.  
  4727. if (Physics == PHYS_Walking)
  4728. - {
  4729. + {
  4730. if (bIsCrouching)
  4731. {
  4732. if ( !bIsTurning && ((Velocity.X * Velocity.X + Velocity.Y * Velocity.Y) < 1000) )
  4733. @@ -1522,25 +1904,26 @@ ignores SeePlayer, HearNoise, Bump;
  4734. else
  4735. {
  4736. bAnimTransition = true;
  4737. - TweenToWaiting(0.2);
  4738. + TweenToWaiting(0.4);
  4739. }
  4740. }
  4741. else if (bIsWalking)
  4742. {
  4743. if ( (MyAnimGroup == 'Waiting') || (MyAnimGroup == 'Landing') )
  4744. {
  4745. - TweenToWalking(0.1);
  4746. + TweenToWalking(0.4);
  4747. bAnimTransition = true;
  4748. }
  4749. else
  4750. PlayWalking();
  4751. }
  4752. +
  4753. else
  4754. {
  4755. if ( (MyAnimGroup == 'Waiting') || (MyAnimGroup == 'Landing') )
  4756. {
  4757. bAnimTransition = true;
  4758. - TweenToRunning(0.1);
  4759. + TweenToRunning(0.4);
  4760. }
  4761. else
  4762. PlayRunning();
  4763. @@ -1554,7 +1937,7 @@ ignores SeePlayer, HearNoise, Bump;
  4764. }
  4765.  
  4766. }
  4767. -
  4768. +
  4769. function Landed(vector HitNormal)
  4770. {
  4771. clientMessage("landed: jump dist = " $VSize(Location-MountDelta) $ " tia="$fTimeInAir);
  4772. @@ -1564,14 +1947,103 @@ ignores SeePlayer, HearNoise, Bump;
  4773. PlayLandedSound();
  4774.  
  4775. playanim('land1');
  4776. +
  4777. + //allow player to cast when landing -AdamJD
  4778. + if (bPlayerCasting)
  4779. + {
  4780. + HarryAnimType = AT_Combine;
  4781. + HarryAnimChannel.GotoStateCasting();
  4782. + }
  4783.  
  4784. // log("PLOG PWalking landed");
  4785. }
  4786.  
  4787. - event PlayerTick( float DeltaTime )
  4788. + //PlayerAim start and stop sound functons -AdamJD
  4789. + function StartSoundFX()
  4790. {
  4791. - local baseChar a;
  4792. + PlaySound(sound'HPSounds.Magic_sfx.spell_build_nl2', SLOT_Misc);
  4793. + PlaySound(sound'HPSounds.Magic_sfx.spell_loop_nl', SLOT_Interact);
  4794. + }
  4795.  
  4796. + function StopSoundFX()
  4797. + {
  4798. + StopSound(sound'HPSounds.Magic_sfx.spell_build_nl2', SLOT_Misc);
  4799. + StopSound(sound'HPSounds.Magic_sfx.spell_loop_nl', SLOT_Interact);
  4800. + }
  4801. +
  4802. + //turn on player casting -AdamJD
  4803. + function StartCasting()
  4804. + {
  4805. + //setup the casting stuff
  4806. + if (bPlayerCasting && CarryingActor == none ) //&& Physics == PHYS_Walking) //can now cast when jumping -AdamJD
  4807. + {
  4808. + //LoopAnim('wave', 2.0, 0.1);
  4809. + //MovementMode(true); //now not needed because you can now move the camera while casting!
  4810. + Weapon.bPointing = true;
  4811. + basewand(weapon).bCasting=true;
  4812. + baseWand(Weapon).WandEffect.bHidden = false;
  4813. + bJustFired = false;
  4814. + bJustAltFired = false;
  4815. + hpconsole(player.console).bspaceReleased=false;
  4816. + hpconsole(player.console).bSpacePressed = false;
  4817. + StartSoundFX();
  4818. + makeTarget();
  4819. + //HarryAnimType = AT_Combine;
  4820. + HarryAnimChannel.GotoStateCasting();
  4821. + // bCastFastSpells = true;
  4822. + }
  4823. +
  4824. + //go to the StopCasting function if the player has just pressed the wand input
  4825. + if( HarryAnimChannel.AnimSequence == 'cast' )
  4826. + {
  4827. + //LoopAnim('breath');
  4828. + StopCasting();
  4829. + }
  4830. + }
  4831. +
  4832. + //turn off player casting -AdamJD
  4833. + function StopCasting()
  4834. + {
  4835. + //if the player has just pressed the wand input then let Harry finish his anim and turn off the casting stuff until he has finished
  4836. + if( HarryAnimChannel.AnimSequence == 'cast' )
  4837. + {
  4838. + //LoopAnim('breath');
  4839. + HarryAnimChannel.GotoStateHasCast();
  4840. + Weapon.bPointing = false;
  4841. + basewand(weapon).bCasting=false;
  4842. + baseWand(Weapon).WandEffect.bHidden = true;
  4843. + rectarget.destroy();
  4844. + StopSoundFX();
  4845. + bPlayerCasting = false;
  4846. + }
  4847. +
  4848. + //otherwise stop the casting stuff altogether
  4849. + else
  4850. + {
  4851. + Weapon.bPointing = false;
  4852. + basewand(weapon).bCasting=false;
  4853. + baseWand(Weapon).WandEffect.bHidden = true;
  4854. + rectarget.destroy();
  4855. + StopSoundFX();
  4856. + //bJustFired = true;
  4857. + //bJustAltFired = true;
  4858. + bPlayerCasting = false;
  4859. + //gotoState('PlayerWalking');
  4860. + //HarryAnimType = AT_Combine;
  4861. + HarryAnimChannel.GotoStateCancelCasting();
  4862. + // bCastFastSpells = false;
  4863. + }
  4864. + }
  4865. +
  4866. + event PlayerTick( float DeltaTime )
  4867. + {
  4868. + local baseChar a;
  4869. +
  4870. + Global.PlayerTick( DeltaTime ); //update playertick -AdamJD
  4871. +
  4872. + foreach allActors(class'BaseCam', cam)
  4873. + break;
  4874. +
  4875. if( bTempKillHarry )// || lifePotions <= 0 )
  4876. {
  4877. bTempKillHarry = false;
  4878. @@ -1585,9 +2057,24 @@ ignores SeePlayer, HearNoise, Bump;
  4879. KillHarry(true);
  4880. return;
  4881. }
  4882. +
  4883. + //stop casting if in cutscene/Harry is frozen -AdamJD
  4884. + if (baseHud(myhud).bCutSceneMode == true)
  4885. + {
  4886. + if(bPlayerCasting == true)
  4887. + {
  4888. + bPlayerCasting = false;
  4889. + StopCasting();
  4890. + baseWand(weapon).bPointing = false;
  4891. + basewand(weapon).bCasting=false;
  4892. + baseWand(weapon).WandEffect.bHidden = true;
  4893. + rectarget.destroy();
  4894. + StopSoundFX();
  4895. + }
  4896. + }
  4897.  
  4898. - if ( bUpdatePosition )
  4899. - ClientUpdatePosition();
  4900. + // if ( bUpdatePosition )
  4901. + // ClientUpdatePosition();
  4902.  
  4903. //Try and save how long you've been falling, and what you're original height was when you started falling
  4904. ProcessFalling( DeltaTime );
  4905. @@ -1603,7 +2090,7 @@ ignores SeePlayer, HearNoise, Bump;
  4906. // bScreenRelativeMovement = !bScreenRelativeMovement;
  4907. // ClientMessage("ToggleTab");
  4908. //}
  4909. -
  4910. +
  4911. if( CarryingActor != none )
  4912. {
  4913. //r = weaponRot;
  4914. @@ -1619,6 +2106,47 @@ ignores SeePlayer, HearNoise, Bump;
  4915. AltFire(0);
  4916. }
  4917. }
  4918. +
  4919. + //the player wants to fire a spell, so let's see if they can -AdamJD
  4920. + if( bPlayerCasting && HarryAnimChannel.IsInState('stateCasting') && bAltFire == 0 ) //&& Physics == PHYS_Walking && GetAnimGroup(AnimSequence) == 'wave' //now not needed
  4921. + {
  4922. + //the player is aiming at a target or victim so cast the spell
  4923. + if ( rectarget.bIsLockedOn == true && (!IsInState('FallingMount')) || (!IsInState('Mounting')) || (!IsInState('MountFinish')) ) //don't cast the spell if Harry has just climbed something or is currently climbing
  4924. + {
  4925. + HarryAnimChannel.GotoStateCast();
  4926. + // StopSoundFX();
  4927. + //PlayAnim('cast', 2.0, 0.1);
  4928. + // Weapon.bPointing = false;
  4929. + // basewand(weapon).bCasting=false;
  4930. + // baseWand(Weapon).WandEffect.bHidden = true;
  4931. + // rectarget.destroy();
  4932. + // bPlayerCasting = false;
  4933. + //MovementMode(false); //now not needed because you can now move the camera while casting!
  4934. + StopCasting();
  4935. + //gotoState('PlayerWalking');
  4936. + }
  4937. +
  4938. + //the player is not aiming at a target or victim
  4939. + else
  4940. + {
  4941. + // Weapon.bPointing = false;
  4942. + // baseWand(Weapon).WandEffect.bHidden = true;
  4943. + //loopanim('wave', 2.0 , 0.2);
  4944. + // HarryAnimChannel.GotoStateCancelCasting;
  4945. + // bPlayerCasting = false;
  4946. + // rectarget.destroy();
  4947. + //MovementMode(false); //now not needed because you can now move the camera while casting!
  4948. + StopCasting();
  4949. + //gotoState('PlayerWalking');
  4950. + }
  4951. + }
  4952. +
  4953. + //HP2 cam code (keeps camera behind Harry) -AdamJD
  4954. + if( cam.IsInState('Standardstate') )
  4955. + {
  4956. + DesiredRotation.Yaw = cam.rotation.Yaw & 0xFFFF;
  4957. + SetRotation( DesiredRotation );
  4958. + }
  4959. }
  4960.  
  4961. //Try and save how long you've been falling, and what you're original height was when you started falling
  4962. @@ -1651,10 +2179,14 @@ ignores SeePlayer, HearNoise, Bump;
  4963. local float Speed2D;
  4964. local bool bSaveJump;
  4965. local name AnimGroupName;
  4966. -
  4967. - //if( PotCam(ViewTarget) != none )
  4968. - // GetAxes(ViewTarget.Rotation,X,Y,Z);
  4969. - //else
  4970. +
  4971. + //find BaseCam -AdamJD
  4972. + foreach allActors(class'BaseCam', cam)
  4973. + break;
  4974. +
  4975. + // if( PotCam(ViewTarget) != none )
  4976. + // GetAxes(ViewTarget.Rotation,X,Y,Z);
  4977. + // else
  4978.  
  4979. if( bReverseInput ) //Right now, just for troll chase.
  4980. {
  4981. @@ -1670,30 +2202,29 @@ ignores SeePlayer, HearNoise, Bump;
  4982.  
  4983. if( Physics == PHYS_Falling || bLockedOnTarget || bFixedFaceDirection )
  4984. {
  4985. - aStrafe *= 0.08*2;
  4986. + aStrafe *= 0.08; //*2; //halved the speed of aStrafe -AdamJD
  4987. aTurn = 0;
  4988. }
  4989. +
  4990. else
  4991. - {
  4992. - aStrafe = 0;
  4993. - aTurn *= 0.24;
  4994. + {
  4995. + aStrafe *= 0.08;
  4996. + aTurn *= 0.24;
  4997. }
  4998.  
  4999. aLookup *= 0; // make harry steady (no pitching with look up)
  5000. - aSideMove *= 0.1;
  5001. -
  5002. - if( bKeepStationary )
  5003. - {
  5004. - aForward = 0;
  5005. - aStrafe = 0;
  5006. - }
  5007. + aSideMove *= 0.1;
  5008.  
  5009. // Update acceleration.
  5010. if( bLockedOnTarget || bFixedFaceDirection )
  5011. {
  5012. - if( aForward < 0 )
  5013. - aForward *= 2;
  5014. -
  5015. + //not needed -AdamJD
  5016. + // if( aForward < 0 )
  5017. + // aForward *= 2;
  5018. +
  5019. + //stop Harry turning on his own axis when fighting troll or vold -AdamJD
  5020. + aTurn = 0;
  5021. +
  5022. //ClientMessage("aForward:" @ aForward @ " aStrafe:" @ aStrafe);
  5023. //NewAccel = aForward*X + aStrafe*Y;
  5024. //ProcessAccel messes with aForward and aStrafe to get a final NewAccel
  5025. @@ -1725,22 +2256,54 @@ ignores SeePlayer, HearNoise, Bump;
  5026. NewAccel = aForward*X + aStrafe*Y;
  5027. }
  5028. }
  5029. -
  5030. +
  5031. + //don't move if input is disabled -AdamJD
  5032. + if( bKeepStationary )
  5033. + {
  5034. + aForward = 0;
  5035. + aStrafe = 0;
  5036. + }
  5037. +
  5038. NewAccel.Z = 0;
  5039. // Check for Dodge move
  5040.  
  5041. AnimGroupName = GetAnimGroup(AnimSequence);
  5042. +
  5043. if ( (Physics == PHYS_Walking) )
  5044. Speed2D = Sqrt(Velocity.X * Velocity.X + Velocity.Y * Velocity.Y);
  5045.  
  5046. // Update rotation.
  5047. OldRotation = Rotation;
  5048.  
  5049. + //not needed -AdamJD
  5050. //When you're locked onto a target, or facing down a fixed direction, other rotation code is performed
  5051. - if( !(bLockedOnTarget || bFixedFaceDirection) ) // && target != none )
  5052. - UpdateRotation(DeltaTime, 1);
  5053. + //if( !(bLockedOnTarget || bFixedFaceDirection) ) // && target != none )
  5054. + //UpdateRotation(DeltaTime, 1);
  5055.  
  5056. ProcessMove(DeltaTime, NewAccel, DodgeMove, OldRotation - Rotation);
  5057. +
  5058. + //HP2 cam code -AdamJD
  5059. + if( cam.IsInState('StandardState') || cam.IsInState('BossState') )
  5060. + {
  5061. + //Harry will always look at what the camera is looking at
  5062. + DesiredRotation.Yaw = cam.rotation.Yaw & 0xFFFF;
  5063. + SetRotation( DesiredRotation );
  5064. + }
  5065. +
  5066. + //stop casting if in cutscene/Harry is frozen -AdamJD
  5067. + if (baseHud(myhud).bCutSceneMode == true)
  5068. + {
  5069. + if(bPlayerCasting == true)
  5070. + {
  5071. + bPlayerCasting = false;
  5072. + StopCasting();
  5073. + baseWand(weapon).bPointing = false;
  5074. + basewand(weapon).bCasting=false;
  5075. + baseWand(weapon).WandEffect.bHidden = true;
  5076. + rectarget.destroy();
  5077. + StopSoundFX();
  5078. + }
  5079. + }
  5080. }
  5081.  
  5082. function ProcessMove(float DeltaTime, vector NewAccel, eDodgeDir DodgeMove, rotator DeltaRot)
  5083. @@ -1756,6 +2319,21 @@ ignores SeePlayer, HearNoise, Bump;
  5084. Velocity = vect(0,0,0);
  5085. return;
  5086. }
  5087. +
  5088. + //stop casting if in cutscene/Harry is frozen -AdamJD
  5089. + if (baseHud(myhud).bCutSceneMode == true)
  5090. + {
  5091. + if(bPlayerCasting == true)
  5092. + {
  5093. + bPlayerCasting = false;
  5094. + StopCasting();
  5095. + baseWand(weapon).bPointing = false;
  5096. + basewand(weapon).bCasting=false;
  5097. + baseWand(weapon).WandEffect.bHidden = true;
  5098. + rectarget.destroy();
  5099. + StopSoundFX();
  5100. + }
  5101. + }
  5102.  
  5103. if ( bPressedJump )
  5104. {
  5105. @@ -1764,7 +2342,7 @@ ignores SeePlayer, HearNoise, Bump;
  5106. }
  5107.  
  5108. if ( (Physics == PHYS_Walking) )
  5109. - {
  5110. + {
  5111. if (!bIsCrouching)
  5112. {
  5113. if (bDuck != 0)
  5114. @@ -1840,24 +2418,59 @@ ignores SeePlayer, HearNoise, Bump;
  5115. if (Physics != PHYS_Falling) SetPhysics(PHYS_Walking);
  5116. if ( !IsAnimating() )
  5117. PlayWaiting();
  5118. +
  5119. + //now not needed -AdamJD
  5120. + /*
  5121. + //AdamJD code start
  5122. + //can't get camera to move when Harry is casting so this is a hack
  5123. + if( !bLockedOnTarget )
  5124. + {
  5125. + if (bPlayerCasting == true)
  5126. + {
  5127. + MovementMode(true);
  5128. + }
  5129. + }
  5130. + //AdamJD End
  5131. + */
  5132. +
  5133. + // foreach allActors(class'BaseCam', cam)
  5134. + // break;
  5135.  
  5136. - foreach allActors(class'BaseCam', cam)
  5137. - break;
  5138. -
  5139. - //LastWalkYaw = Rotation.yaw;
  5140. - //PlayerMoving = MOVING_NOT;
  5141. - //CamPosYawOffset = 0;
  5142. - //CamTargetYawOffset = 0;
  5143. + // LastWalkYaw = Rotation.yaw;
  5144. + // PlayerMoving = MOVING_NOT;
  5145. + // CamPosYawOffset = 0;
  5146. + // CamTargetYawOffset = 0;
  5147. }
  5148. -
  5149. +
  5150. function EndState()
  5151. {
  5152. // log("PLOG PWalking Exited");
  5153. WalkBob = vect(0,0,0);
  5154. bIsCrouching = false;
  5155. +
  5156. + //stop casting if in cutscene/Harry is frozen -AdamJD
  5157. + if (baseHud(myhud).bCutSceneMode == true)
  5158. + {
  5159. + if(bPlayerCasting == true)
  5160. + {
  5161. + bPlayerCasting = false;
  5162. + baseWand(weapon).bPointing = false;
  5163. + basewand(weapon).bCasting=false;
  5164. + baseWand(weapon).WandEffect.bHidden = true;
  5165. + rectarget.destroy();
  5166. + StopSoundFX();
  5167. + }
  5168. + }
  5169. +
  5170. + //now not needed -AdamJD
  5171. + /*
  5172. + //if not casting go back to normal movement -AdamJD
  5173. + if (bPlayerCasting == false)
  5174. + {
  5175. + MovementMode(false);
  5176. + }
  5177. + */
  5178. }
  5179. -
  5180. -
  5181. }
  5182.  
  5183. //********************************************************************************************
  5184. @@ -1900,7 +2513,7 @@ ignores SeePlayer, HearNoise, Bump;
  5185. hidden=false;
  5186. }
  5187. }
  5188. -
  5189. +
  5190. if (Physics == PHYS_Walking)
  5191. {
  5192. if (bIsCrouching)
  5193. @@ -1925,7 +2538,7 @@ ignores SeePlayer, HearNoise, Bump;
  5194. }
  5195. else if (bIsWalking)
  5196. {
  5197. - if ( (MyAnimGroup == 'Waiting') || (MyAnimGroup == 'Landing') )
  5198. + if ( (MyAnimGroup == 'Waiting') || (MyAnimGroup == 'Landing') )
  5199. {
  5200. TweenToWalking(0.1);
  5201. bAnimTransition = true;
  5202. @@ -1935,7 +2548,7 @@ ignores SeePlayer, HearNoise, Bump;
  5203. }
  5204. else
  5205. {
  5206. - if ( (MyAnimGroup == 'Waiting') || (MyAnimGroup == 'Landing') )
  5207. + if ( (MyAnimGroup == 'Waiting') || (MyAnimGroup == 'Landing') )
  5208. {
  5209. bAnimTransition = true;
  5210. TweenToRunning(0.1);
  5211. @@ -1943,20 +2556,23 @@ ignores SeePlayer, HearNoise, Bump;
  5212. else
  5213. PlayRunning();
  5214. }
  5215. +
  5216. }
  5217. }
  5218. +
  5219. else
  5220. {
  5221. PlayInAir();
  5222.  
  5223. }
  5224. +
  5225.  
  5226. }
  5227. -
  5228. +
  5229. event PlayerTick( float DeltaTime )
  5230. {
  5231. local baseChar a;
  5232. -
  5233. +
  5234. if( bTempKillHarry )
  5235. {
  5236. bTempKillHarry = false;
  5237. @@ -1973,6 +2589,49 @@ ignores SeePlayer, HearNoise, Bump;
  5238. CarryingActor.setLocation( weaponLoc );//- vect(0,0,1 );
  5239. CarryingActor.SetRotation( weaponRot );
  5240. }
  5241. +
  5242. + //stop casting on chess board -AdamJD
  5243. + if(bPlayerCasting == true)
  5244. + {
  5245. + bPlayerCasting = false;
  5246. + StopCasting();
  5247. + baseWand(weapon).bPointing = false;
  5248. + basewand(weapon).bCasting=false;
  5249. + baseWand(Weapon).WandEffect.bHidden = true;
  5250. + rectarget.destroy();
  5251. + StopSoundFX();
  5252. + }
  5253. + }
  5254. +
  5255. + //new rotation function for the chess board -AdamJD
  5256. + function UpdateRotationOnChessBoard(float DeltaTime, float maxPitch)
  5257. + {
  5258. + local rotator NewRotation;
  5259. + local float YawVal;
  5260. +
  5261. + //get the SmoothMouseX axis and cap it to not overshoot input (only need to care about the SmoothMouseX axis) -AdamJD
  5262. + YawVal = (SmoothMouseX / 1.5) * DeltaTime;
  5263. +
  5264. + //limit SmoothMouseX -AdamJD
  5265. + if(YawVal == SmoothMouseX)
  5266. + {
  5267. + if( YawVal > MAX_MOUSE_DELTA_X )
  5268. + {
  5269. + YawVal = MAX_MOUSE_DELTA_X;
  5270. + }
  5271. +
  5272. + else if( YawVal < MIN_MOUSE_DELTA_X )
  5273. + {
  5274. + YawVal = MIN_MOUSE_DELTA_X;
  5275. + }
  5276. + }
  5277. +
  5278. + ViewRotation.Yaw += YawVal; //set YawVal to ViewRotation.Yaw -AdamJD
  5279. + DesiredRotation.Yaw = ViewRotation.Yaw; //set ViewRotation.Yaw to DesiredRotation.Yaw -AdamJD
  5280. + NewRotation.Yaw = cam.rotation.Yaw; //move Harry and chess marker at the same time when moving mouse left or right -AdamJD
  5281. +
  5282. + DesiredRotation = ViewRotation; //set ViewRotation to DesiredRotation -AdamJD
  5283. + setRotation(NewRotation); //use the NewRotation as the camera rotation -AdamJD
  5284. }
  5285.  
  5286. function PlayerMove( float DeltaTime )
  5287. @@ -1985,7 +2644,7 @@ ignores SeePlayer, HearNoise, Bump;
  5288. local float Speed2D;
  5289. local bool bSaveJump;
  5290. local name AnimGroupName;
  5291. -
  5292. +
  5293. //if( PotCam(ViewTarget) != none )
  5294. // GetAxes(ViewTarget.Rotation,X,Y,Z);
  5295. //else
  5296. @@ -2002,6 +2661,7 @@ ignores SeePlayer, HearNoise, Bump;
  5297. if (aForward > 0)
  5298. {
  5299. bChessMoving = true;
  5300. + TweenToRunning(0.4); //make Harry move smoothly -AdamJD
  5301. return;
  5302. }
  5303. }
  5304. @@ -2009,10 +2669,12 @@ ignores SeePlayer, HearNoise, Bump;
  5305. {
  5306. return;
  5307. }
  5308. -
  5309. +
  5310. + //not needed -AdamJD
  5311. + /*
  5312. if( bReverseInput ) //Right now, just for troll chase.
  5313. {
  5314. - //aForward = -aForward;
  5315. + aForward = -aForward;
  5316. aTurn = -aTurn;
  5317. aStrafe = -aStrafe;
  5318. }
  5319. @@ -2029,29 +2691,32 @@ ignores SeePlayer, HearNoise, Bump;
  5320. aStrafe = 0;
  5321. aTurn *= 0.24;
  5322. }
  5323. + */
  5324.  
  5325. aLookup *= 0; // make harry steady (no pitching with look up)
  5326. - aSideMove *= 0.1;
  5327. + // aSideMove *= 0.1; //not needed -AdamJD
  5328.  
  5329. if( bKeepStationary )
  5330. {
  5331. aForward = 0;
  5332. aStrafe = 0;
  5333. }
  5334. -
  5335. +
  5336. + //not needed -AdamJD
  5337. + /*
  5338. // Update acceleration.
  5339. - if( bLockedOnTarget )
  5340. + if( bLockedOnTarget )
  5341. {
  5342. - if( aForward < 0 )
  5343. + if( aForward < 0 )
  5344. aForward *= 2;
  5345.  
  5346. - //ClientMessage("aForward:" @ aForward @ " aStrafe:" @ aStrafe);
  5347. - //NewAccel = aForward*X + aStrafe*Y;
  5348. - //ProcessAccel messes with aForward and aStrafe to get a final NewAccel
  5349. + ClientMessage("aForward:" @ aForward @ " aStrafe:" @ aStrafe);
  5350. + NewAccel = aForward*X + aStrafe*Y;
  5351. + ProcessAccel messes with aForward and aStrafe to get a final NewAccel
  5352. NewAccel = ProcessAccel();
  5353. - }
  5354. - else
  5355. - {
  5356. + }*/
  5357. + // else //not needed -AdamJD
  5358. + // {
  5359. GetAxes(Rotation,X,Y,Z);
  5360.  
  5361. // Update acceleration.
  5362. @@ -2075,7 +2740,7 @@ ignores SeePlayer, HearNoise, Bump;
  5363. {
  5364. NewAccel = aForward*X + aStrafe*Y;
  5365. }
  5366. - }
  5367. + // }
  5368.  
  5369. NewAccel.Z = 0;
  5370. // Check for Dodge move
  5371. @@ -2084,14 +2749,28 @@ ignores SeePlayer, HearNoise, Bump;
  5372. if ( (Physics == PHYS_Walking) )
  5373. Speed2D = Sqrt(Velocity.X * Velocity.X + Velocity.Y * Velocity.Y);
  5374.  
  5375. + //not needed -AdamJD
  5376. // Update rotation.
  5377. - OldRotation = Rotation;
  5378. -
  5379. + // OldRotation = Rotation;
  5380. +
  5381. //When you're locked onto a target, other rotation code is performed
  5382. - if( !bLockedOnTarget ) // && target != none )
  5383. - UpdateRotation(DeltaTime, 1);
  5384. + //if( !bLockedOnTarget ) // && target != none )
  5385. + //UpdateRotation(DeltaTime, 1);
  5386. +
  5387. + UpdateRotationOnChessBoard(DeltaTime, 1); //new rotation function created by me just for the chess board -AdamJD
  5388. +
  5389. + //stop casting on chess board -AdamJD
  5390. + if(bPlayerCasting == true)
  5391. + {
  5392. + StopCasting();
  5393. + baseWand(weapon).bPointing = false;
  5394. + basewand(weapon).bCasting=false;
  5395. + baseWand(weapon).WandEffect.bHidden = true;
  5396. + rectarget.destroy();
  5397. + StopSoundFX();
  5398. + }
  5399.  
  5400. - ProcessMove(DeltaTime, NewAccel, DodgeMove, OldRotation - Rotation);
  5401. + // ProcessMove(DeltaTime, NewAccel, DodgeMove, OldRotation - Rotation); //commented out because this allows Harry to walk off the chess board breaking the game... -AdamJD
  5402. }
  5403.  
  5404. function ProcessMove(float DeltaTime, vector NewAccel, eDodgeDir DodgeMove, rotator DeltaRot)
  5405. @@ -2152,7 +2831,7 @@ ignores SeePlayer, HearNoise, Bump;
  5406. // if ( bIsTurning && (AnimFrame >= 0) )
  5407. // {
  5408. // bAnimTransition = true;
  5409. - // PlayTurning();
  5410. + //PlayTurning();
  5411. // }
  5412. //}
  5413. //else
  5414. @@ -2167,6 +2846,19 @@ ignores SeePlayer, HearNoise, Bump;
  5415. }
  5416. }
  5417. }
  5418. +
  5419. + //stop casting on chess board -AdamJD
  5420. + if(bPlayerCasting == true)
  5421. + {
  5422. + bPlayerCasting = false;
  5423. + StopCasting();
  5424. + baseWand(weapon).bPointing = false;
  5425. + basewand(weapon).bCasting=false;
  5426. + baseWand(Weapon).WandEffect.bHidden = true;
  5427. + rectarget.destroy();
  5428. + StopSoundFX();
  5429. + }
  5430. +
  5431. else
  5432. {
  5433. if ( (OldAccel == vect(0,0,0)) && (Acceleration != vect(0,0,0)) )
  5434. @@ -2176,11 +2868,54 @@ ignores SeePlayer, HearNoise, Bump;
  5435. }
  5436. }
  5437. }
  5438. -
  5439. +
  5440. + //stop Harry moving and casting when first on the chess board -AdamJD
  5441. + function BeginState()
  5442. + {
  5443. + Acceleration = Vec(0, 0, 0);
  5444. + Velocity = Vec(0, 0, 0);
  5445. +
  5446. + if (Physics == PHYS_Falling)
  5447. + {
  5448. + SetPhysics(PHYS_Walking);
  5449. + PlayWalking();
  5450. + }
  5451. +
  5452. + else if (bPlayerCasting == true)
  5453. + {
  5454. + bPlayerCasting = false;
  5455. + StopCasting();
  5456. + baseWand(weapon).bPointing = false;
  5457. + basewand(weapon).bCasting=false;
  5458. + baseWand(Weapon).WandEffect.bHidden = true;
  5459. + rectarget.destroy();
  5460. + StopSoundFX();
  5461. + PlayWalking();
  5462. + HarryAnimType = AT_Replace;
  5463. + }
  5464. +
  5465. + else
  5466. + {
  5467. + PlayWalking();
  5468. + }
  5469. + }
  5470. +
  5471. function EndState()
  5472. {
  5473. WalkBob = vect(0,0,0);
  5474. bIsCrouching = false;
  5475. +
  5476. + //stop casting on chess board -AdamJD
  5477. + if(bPlayerCasting == true)
  5478. + {
  5479. + bPlayerCasting = false;
  5480. + StopCasting();
  5481. + baseWand(weapon).bPointing = false;
  5482. + basewand(weapon).bCasting=false;
  5483. + baseWand(Weapon).WandEffect.bHidden = true;
  5484. + rectarget.destroy();
  5485. + StopSoundFX();
  5486. + }
  5487. }
  5488.  
  5489. begin:
  5490. @@ -2196,6 +2931,18 @@ begin:
  5491. if (Physics != PHYS_Falling) SetPhysics(PHYS_Walking);
  5492. if ( !IsAnimating() )
  5493. PlayWaiting();
  5494. +
  5495. + //stop casting on chess board -AdamJD
  5496. + if(bPlayerCasting == true)
  5497. + {
  5498. + bPlayerCasting = false;
  5499. + StopCasting();
  5500. + baseWand(weapon).bPointing = false;
  5501. + basewand(weapon).bCasting=false;
  5502. + baseWand(Weapon).WandEffect.bHidden = true;
  5503. + rectarget.destroy();
  5504. + StopSoundFX();
  5505. + }
  5506.  
  5507. foreach allActors(class'BaseCam', cam)
  5508. break;
  5509. @@ -2222,11 +2969,14 @@ loop:
  5510. }
  5511.  
  5512. //**********************************************************************************************
  5513. +//now not needed -AdamJD
  5514. +/*
  5515. //This is called from 'PlayerWalking' and 'PlayerAim'
  5516. function UpdateRotation(float DeltaTime, float maxPitch)
  5517. {
  5518. local rotator newRotation;
  5519. local float YawVal;
  5520. + local float YawValY; //local YawValY float -AdamJD
  5521. local int RotDist;
  5522. local float FastRotRate;
  5523.  
  5524. @@ -2234,14 +2984,16 @@ function UpdateRotation(float DeltaTime, float maxPitch)
  5525. return;
  5526.  
  5527. FastRotRate = 70000;
  5528. +
  5529. + YawValY = YawVal; //set YawValY to YawVal -AdamJD
  5530.  
  5531. DesiredRotation = ViewRotation;
  5532. ViewRotation.Pitch += 32.0 * DeltaTime * aLookUp;
  5533. ViewRotation.Pitch = ViewRotation.Pitch & 65535;
  5534. -
  5535. - If ((ViewRotation.Pitch > 18000) && (ViewRotation.Pitch < 49152))
  5536. +
  5537. + if ((ViewRotation.Pitch > 18000) && (ViewRotation.Pitch < 49152))
  5538. {
  5539. - If (aLookUp > 0)
  5540. + if (aLookUp > 0)
  5541. ViewRotation.Pitch = 18000;
  5542. else
  5543. ViewRotation.Pitch = 49152;
  5544. @@ -2278,17 +3030,95 @@ function UpdateRotation(float DeltaTime, float maxPitch)
  5545. YawVal = -YawVal;
  5546. }
  5547. }
  5548. +
  5549. else
  5550. {
  5551. - //When you're in state 'PlayerAim', and you're in "circle around the boss" (bLockedOnTarget) mode, this function gets called,
  5552. + // When you're in state 'PlayerAim', and you're in "circle around the boss" (bLockedOnTarget) mode, this function gets called,
  5553. // and then overridden, with an absolute rot set towards the Boss.
  5554. -
  5555. - if(Acceleration == vect(0,0,0))
  5556. - YawVal=32.0 * DeltaTime * aTurn;
  5557. +
  5558. + if(Acceleration == vect(0,0,0))
  5559. + {
  5560. + //YawVal= 32.0 * DeltaTime * aTurn; //old retail code -AdamJD
  5561. +
  5562. + //HOLY CRAP- I finally fixed Harry turning when strafing!!! -AdamJD
  5563. + YawVal= (SmoothMouseX / 1.5) * DeltaTime;
  5564. + // YawValY = (SmoothMouseY / 1.5) * DeltaTime;
  5565. +
  5566. + //for a more smoother Mouse X effect -AdamJD
  5567. + if(YawVal == SmoothMouseX)
  5568. + {
  5569. + if( YawVal > MAX_MOUSE_DELTA_X )
  5570. + {
  5571. + YawVal = MAX_MOUSE_DELTA_X;
  5572. + }
  5573. +
  5574. + else if( YawVal < MIN_MOUSE_DELTA_X )
  5575. + {
  5576. + YawVal = MIN_MOUSE_DELTA_X;
  5577. + }
  5578. + }
  5579. +
  5580. + //for a more smoother Mouse Y effect -AdamJD
  5581. + // if(YawValY == SmoothMouseY)
  5582. + // {
  5583. + // if( YawValY > MAX_MOUSE_DELTA_Y )
  5584. + // {
  5585. + // YawValY = MAX_MOUSE_DELTA_Y;
  5586. + // }
  5587. +
  5588. + // else if( YawValY < MIN_MOUSE_DELTA_Y )
  5589. + // {
  5590. + // YawValY = MIN_MOUSE_DELTA_Y;
  5591. + // }
  5592. + // }
  5593. +
  5594. + //keep camera behind Harry -AdamJD
  5595. + // DesiredRotation.Yaw = cam.rotation.Yaw & 0xFFFF;
  5596. + // SetRotation( DesiredRotation );
  5597. + }
  5598. +
  5599. else
  5600. - YawVal=24.0 * DeltaTime * aTurn;
  5601. + {
  5602. + //YawVal=24.0 * DeltaTime * aTurn; //old retail code -AdamJD
  5603. +
  5604. + //HOLY CRAP- I finally fixed Harry turning when strafing!!! -AdamJD
  5605. + YawVal= (SmoothMouseX / 1.8) * DeltaTime;
  5606. + // YawValY = (SmoothMouseY / 1.8) * DeltaTime;
  5607. +
  5608. + //for a more smoother Mouse X effect -AdamJD
  5609. + if(YawVal == SmoothMouseX)
  5610. + {
  5611. + if( YawVal > MAX_MOUSE_DELTA_X )
  5612. + {
  5613. + YawVal = MAX_MOUSE_DELTA_X;
  5614. + }
  5615. +
  5616. + else if( YawVal < MIN_MOUSE_DELTA_X )
  5617. + {
  5618. + YawVal = MIN_MOUSE_DELTA_X;
  5619. + }
  5620. + }
  5621. +
  5622. + //for a more smoother Mouse Y effect -AdamJD
  5623. + // if(YawValY == SmoothMouseY)
  5624. + // {
  5625. + // if( YawValY > MAX_MOUSE_DELTA_Y )
  5626. + // {
  5627. + // YawValY = MAX_MOUSE_DELTA_Y;
  5628. + // }
  5629. +
  5630. + // else if( YawValY < MIN_MOUSE_DELTA_Y )
  5631. + // {
  5632. + // YawValY = MIN_MOUSE_DELTA_Y;
  5633. + // }
  5634. + // }
  5635. +
  5636. + //keep camera behind Harry -AdamJD
  5637. + // DesiredRotation.Yaw = cam.rotation.Yaw & 0xFFFF;
  5638. + // SetRotation( DesiredRotation );
  5639. + }
  5640. }
  5641. -
  5642. +
  5643. //If bConstrainYaw is set and you're not turning, this tries to turn you back towards the x axis
  5644. if( bConstrainYaw && yawVal == 0 )
  5645. {
  5646. @@ -2301,8 +3131,10 @@ function UpdateRotation(float DeltaTime, float maxPitch)
  5647. else
  5648. yawVal = min( RotDist, 65536 - ViewRotation.Yaw );
  5649. }
  5650. -
  5651. +
  5652. + //AdamJD
  5653. ViewRotation.Yaw += yawVal;
  5654. + //ViewRotation.Pitch = YawValY;
  5655.  
  5656. //This is specially for keeping harry pointing down a specified yaw, with a certain amount of variance. For now, it's hard coded down the x axis.
  5657. if( bConstrainYaw )
  5658. @@ -2315,13 +3147,13 @@ function UpdateRotation(float DeltaTime, float maxPitch)
  5659. if( ViewRotation.Yaw >= 32767 && ViewRotation.Yaw < 65536 - ConstrainYawVariance )
  5660. ViewRotation.Yaw = 65536 - ConstrainYawVariance;
  5661. }
  5662. -
  5663. +
  5664. // Remember pre-shake.
  5665. newRotation = ViewRotation;
  5666. ViewShake(deltaTime);
  5667. if( ViewTarget != none )
  5668. {
  5669. - // Apply the view shake delta to our camera actor.
  5670. + //Apply the view shake delta to our camera actor.
  5671. newRotation = ViewTarget.Rotation + ViewRotation - newRotation;
  5672. newRotation.Roll = newRotation.Roll & 0xffff;
  5673. ViewTarget.SetRotation(newRotation);
  5674. @@ -2330,17 +3162,76 @@ function UpdateRotation(float DeltaTime, float maxPitch)
  5675. newRotation = Rotation;
  5676. newRotation.Yaw = ViewRotation.Yaw;
  5677. newRotation.Pitch = ViewRotation.Pitch;
  5678. -
  5679. - If ( (newRotation.Pitch > maxPitch * RotationRate.Pitch) && (newRotation.Pitch < 65536 - maxPitch * RotationRate.Pitch) )
  5680. +
  5681. + if ( (newRotation.Pitch > maxPitch * RotationRate.Pitch) && (newRotation.Pitch < 65536 - maxPitch * RotationRate.Pitch) )
  5682. {
  5683. - If (ViewRotation.Pitch < 32768)
  5684. + if (ViewRotation.Pitch < 32768)
  5685. newRotation.Pitch = maxPitch * RotationRate.Pitch;
  5686. else
  5687. newRotation.Pitch = 65536 - maxPitch * RotationRate.Pitch;
  5688. }
  5689. setRotation(newRotation);
  5690. -}
  5691. -
  5692. +}*/
  5693. +//**********************************************************************************************
  5694. +//old x mouse function created by me -AdamJD
  5695. +/*
  5696. +function MouseX(float DeltaTime)
  5697. +{
  5698. + local float xMouse;
  5699. + local float fRotSpeed;
  5700. + local float fCurrentMinPitch;
  5701. + local float fCurrentMaxPitch;
  5702. +
  5703. + xMouse = SmoothMouseX * DeltaTime;
  5704. +
  5705. + fRotSpeed = 4.0f;
  5706. + fCurrentMinPitch = -14000.0f;
  5707. + fCurrentMaxPitch = 14000.0f;
  5708. +
  5709. + //for a more smoother effect -AdamJD
  5710. + if( xMouse > MAX_MOUSE_DELTA_X )
  5711. + {
  5712. + xMouse = MAX_MOUSE_DELTA_X;
  5713. + }
  5714. +
  5715. + else if( xMouse < MIN_MOUSE_DELTA_X )
  5716. + {
  5717. + xMouse = MIN_MOUSE_DELTA_X;
  5718. + }
  5719. +
  5720. + //DesiredRotation.Yaw = cam.rotation.Yaw & 0xFFFF;
  5721. + // SetRotation( DesiredRotation );
  5722. +}*/
  5723. +//**********************************************************************************************
  5724. +//old y mouse function created by me -AdamJD
  5725. +/*
  5726. +function MouseY(float DeltaTime)
  5727. +{
  5728. + local float yMouse;
  5729. + local float fRotSpeed;
  5730. + local float fCurrentMinPitch;
  5731. + local float fCurrentMaxPitch;
  5732. +
  5733. + yMouse = SmoothMouseY * DeltaTime;
  5734. +
  5735. + fRotSpeed = 4.0f;
  5736. + fCurrentMinPitch = -14000.0f;
  5737. + fCurrentMaxPitch = 14000.0f;
  5738. +
  5739. + //for a more smoother effect -AdamJD
  5740. + if( yMouse > MAX_MOUSE_DELTA_X )
  5741. + {
  5742. + yMouse = MAX_MOUSE_DELTA_X;
  5743. + }
  5744. +
  5745. + else if( yMouse < MIN_MOUSE_DELTA_X )
  5746. + {
  5747. + yMouse = MIN_MOUSE_DELTA_X;
  5748. + }
  5749. +
  5750. + //DesiredRotation.Yaw = cam.rotation.Yaw & 0xFFFF;
  5751. + // SetRotation( DesiredRotation );
  5752. +}*/
  5753. //**********************************************************************************************
  5754. function UpdateRotationToTarget()
  5755. {
  5756. @@ -2371,8 +3262,9 @@ function UpdateRotationToTarget()
  5757.  
  5758. //This makes it so when harry goes to state 'hit', he still looks at the boss.
  5759. DesiredRotation = ViewRotation;
  5760. -
  5761. - if( (StandardTarget.Location != TargetLoc && astrafe != 0)
  5762. +
  5763. + //not needed -AdamJD
  5764. + /*if( (StandardTarget.Location != TargetLoc && astrafe != 0)
  5765. || (BossRailMove(BossTarget) != none)
  5766. )
  5767. {
  5768. @@ -2384,13 +3276,16 @@ function UpdateRotationToTarget()
  5769. v = TargetLoc;
  5770. }
  5771. StandardTarget.SetLocation(v);
  5772. - }
  5773. + }*/
  5774.  
  5775. r = rotator(StandardTarget.Location - Location);
  5776. r.pitch = Rotation.pitch;
  5777. - SetRotation( r );
  5778. + //SetRotation( r ); //not needed -AdamJD
  5779. ViewRotation = r;
  5780. + DesiredRotation = r; //set the desired rotation -AdamJD
  5781. }
  5782. + //not needed -AdamJD
  5783. + /*
  5784. else
  5785. {
  5786. TargetLoc = rectarget.location;
  5787. @@ -2400,6 +3295,7 @@ function UpdateRotationToTarget()
  5788. SetRotation( r );
  5789. ViewRotation = r;
  5790. }
  5791. + */
  5792. }
  5793.  
  5794. //**********************************************************************************************
  5795. @@ -2418,7 +3314,7 @@ function vector ProcessAccel()
  5796. fLargestAForward = aForward;
  5797.  
  5798. //Point harry at our foe
  5799. - UpdateRotationToTarget();
  5800. + UpdateRotationToTarget();
  5801.  
  5802. GetAxes(Rotation,X,Y,Z);
  5803.  
  5804. @@ -2662,12 +3558,6 @@ ignores SeePlayer, HearNoise, Bump;
  5805. return;
  5806. }
  5807.  
  5808. - if ( bPressedJump )
  5809. - {
  5810. - DoJump(); // jumping
  5811. - bPressedJump = false;
  5812. - }
  5813. -
  5814. if ( (Physics == PHYS_Walking) )
  5815. {
  5816. if (!bIsCrouching)
  5817. @@ -2763,11 +3653,11 @@ ignores SeePlayer, HearNoise, Bump;
  5818. if ( (Physics == PHYS_Walking) )
  5819. {
  5820. Speed2D = Sqrt(Velocity.X * Velocity.X + Velocity.Y * Velocity.Y);
  5821. - }
  5822. + }
  5823.  
  5824. // Update rotation.
  5825. - OldRotation = Rotation;
  5826. - UpdateRotation(DeltaTime, 1);
  5827. + //OldRotation = Rotation; //not needed -AdamJD
  5828. + //UpdateRotation(DeltaTime, 1); //not needed -AdamJD
  5829.  
  5830.  
  5831. ProcessMove(DeltaTime, NewAccel, DodgeMove, OldRotation - Rotation);
  5832. @@ -2839,8 +3729,8 @@ function rotator AdjustAim(float projSpeed, vector projStart, int aimerror, bool
  5833. fireDir = normal(fireDir);
  5834. bestTarget = none;
  5835.  
  5836. - if (rectarget.victim == none)
  5837. - {
  5838. + //if (rectarget.victim == none) //not needed -AdamJD
  5839. + //{
  5840. foreach VisibleActors( class 'ACTOR', hitactor)
  5841. {
  5842. if( HitActor.bprojtarget && PlayerPawn(HitActor) != Self && !HitActor.IsA('BaseCam'))
  5843. @@ -2871,7 +3761,9 @@ function rotator AdjustAim(float projSpeed, vector projStart, int aimerror, bool
  5844. }
  5845.  
  5846. }
  5847. - }
  5848. + //}
  5849. + //not needed -AdamJD
  5850. + /*
  5851. else
  5852. {
  5853. bestTarget = rectarget.victim;
  5854. @@ -2881,6 +3773,7 @@ function rotator AdjustAim(float projSpeed, vector projStart, int aimerror, bool
  5855. bestYaw = bestYaw & 0xffff;
  5856. bestZ = objectdir.z;
  5857. }
  5858. + */
  5859.  
  5860. if(bestTarget != none)
  5861. {
  5862. @@ -2899,68 +3792,6 @@ function rotator AdjustAim(float projSpeed, vector projStart, int aimerror, bool
  5863. return defaultAngle;
  5864. }
  5865.  
  5866. -
  5867. -event PreBeginPlay()
  5868. -{
  5869. - Super.PreBeginPlay();
  5870. -
  5871. - foreach AllActors(class'baseNarrator', theNarrator)
  5872. - break;
  5873. - if(theNarrator==None)
  5874. - {
  5875. - theNarrator=spawn(class 'Narrator');
  5876. - Log("Narrator spawned:" $theNarrator);
  5877. - }
  5878. -
  5879. -}
  5880. -
  5881. -function PostBeginPlay()
  5882. -{
  5883. - local Pawn p;
  5884. - local weapon weap;
  5885. - Super.PostBeginPlay();
  5886. -
  5887. - b3DSound = bool(ConsoleCommand("get ini:Engine.Engine.AudioDevice Use3dHardware"));
  5888. -
  5889. - bShowMenu=false;
  5890. - log("weapon is" $weapon);
  5891. - if(inventory==none)
  5892. - {
  5893. - weap=spawn(class'baseWand');
  5894. - weap.BecomeItem();
  5895. - AddInventory(weap);
  5896. - weap.WeaponSet(self);
  5897. - weap.GiveAmmo(self);
  5898. - baseWand(weap).bUseMana=false;
  5899. - log(self$ " spawning weap " $weap);
  5900. - }
  5901. - else
  5902. - {
  5903. - log("not spawning weap");
  5904. - }
  5905. -
  5906. - iFireSeedCount = 0;
  5907. -
  5908. - HUDType=class'HPMenu.HPHud';
  5909. -
  5910. - viewClass(class 'BaseCam', true);
  5911. - // @PAB added new camera target
  5912. - makeCamTarget();
  5913. -
  5914. - // Harry gets a shadow, bigger than normal.
  5915. - Shadow = Spawn(ShadowClass,self);
  5916. - log( self$ " ShadowClass=" $ShadowClass$ " shadow=" $Shadow$ " tex=" $Shadow.Texture );
  5917. -
  5918. -// @PAB temp give a spell to Harry
  5919. - baseWand(weap).addSpell(Class'spellDud');
  5920. -// baseWand(weap).addSpell(Class'spellflip');
  5921. -// baseWand(weap).addSpell(Class'spellALOho');
  5922. -// baseWand(weap).SelectSpell(Class'spellFlip');
  5923. -
  5924. - HarryAnimChannel = cHarryAnimChannel( CreateAnimChannel(class'cHarryAnimChannel', AT_Replace, 'harry spine1') );
  5925. - HarryAnimChannel.SetOwner( self );
  5926. -}
  5927. -
  5928. function timer()
  5929. {
  5930.  
  5931. @@ -3030,14 +3861,17 @@ function makeTarget()
  5932. local vector tloc;
  5933. local vector targetoffset;
  5934.  
  5935. - targetOffset.y=0;
  5936. targetOffset.x=50;
  5937. + targetOffset.y=0;
  5938. targetOffset.z=0;
  5939.  
  5940. tloc=targetOffset>>viewrotation;
  5941. - tloc=tloc+location;
  5942. -
  5943. + tloc +=location;
  5944. +
  5945. rectarget=spawn(class'target',,,tloc);
  5946. +
  5947. + //not needed -AdamJD
  5948. + /*
  5949. if(rectarget==none)
  5950. {
  5951. targetOffset.y=0;
  5952. @@ -3045,11 +3879,12 @@ function makeTarget()
  5953. targetOffset.z=0;
  5954.  
  5955. tloc=targetOffset>>viewrotation;
  5956. - tloc=tloc+location;
  5957. + tloc +=location;
  5958.  
  5959. rectarget=spawn(class'target',,,tloc);
  5960. }
  5961. -
  5962. + */
  5963. +
  5964. if(rectarget==none)
  5965. {
  5966. gotostate('playerwalking');
  5967. @@ -3057,32 +3892,35 @@ function makeTarget()
  5968. hpconsole(player.console).bspaceReleased=true;
  5969. hpconsole(player.console).bSpacePressed=false;
  5970. }
  5971. -
  5972. - rectarget.p=self;
  5973. - rectarget.targetOffset.y=0;
  5974. - rectarget.targetOffset.x=100;
  5975. - rectarget.targetOffset.z=0;
  5976. +
  5977. + else
  5978. + {
  5979. + // rectarget.p=self;
  5980. + rectarget.targetOffset.x=100;
  5981. + rectarget.targetOffset.y=0;
  5982. + rectarget.targetOffset.z=0;
  5983. + }
  5984. }
  5985.  
  5986. -
  5987. +//now not needed -AdamJD
  5988. +/*
  5989. // @PAB added new camera target
  5990. function makeCamTarget()
  5991. {
  5992. local vector tloc;
  5993. local vector targetoffset;
  5994.  
  5995. -
  5996. - targetOffset.y=0;
  5997. - targetOffset.x=50;
  5998. - targetOffset.z=0;
  5999. -
  6000. -
  6001. -
  6002. -
  6003. - tloc=targetOffset>>viewrotation;
  6004. - tloc=tloc+location;
  6005. + //not needed -AdamJD
  6006. + // targetOffset.y=0;
  6007. + // targetOffset.x=50;
  6008. + // targetOffset.z=0;
  6009. +
  6010. + StandardTarget=spawn(class'camtarget',,,tloc);*/
  6011. + // tloc=targetOffset>>viewrotation; //not needed -AdamJD
  6012. + // tloc+=location; //not needed -AdamJD
  6013.  
  6014. - StandardTarget=spawn(class'camtarget',,,tloc);
  6015. + //not needed -AdamJD
  6016. + /*
  6017. if(StandardTarget==none)
  6018. {
  6019. targetOffset.y=0;
  6020. @@ -3100,13 +3938,17 @@ function makeCamTarget()
  6021. hpconsole(player.console).bspaceReleased = true;
  6022. hpconsole(player.console).bSpacePressed = false;
  6023. }
  6024. -
  6025. - StandardTarget.p=self;
  6026. - StandardTarget.targetOffset.y=0;
  6027. - StandardTarget.targetOffset.x=100;
  6028. - StandardTarget.targetOffset.z=0;
  6029. - StandardTarget.gotostate('seeking');
  6030. -}
  6031. + */
  6032. +
  6033. + /*
  6034. + StandardTarget.p=self;
  6035. + // StandardTarget.targetOffset.y=0; /not needed -AdamJD
  6036. + // StandardTarget.targetOffset.x=100; /not needed -AdamJD
  6037. + StandardTarget.targetOffset.x= SmoothMouseX; //AdamJD
  6038. + StandardTarget.targetOffset.y= SmoothMouseY; //AdamJD
  6039. + StandardTarget.targetOffset.z=0;
  6040. + //StandardTarget.gotostate('seeking'); /not needed -AdamJD
  6041. +}*/
  6042.  
  6043. state SpellLearning
  6044. {
  6045. @@ -3116,36 +3958,37 @@ state SpellLearning
  6046.  
  6047. defaultproperties
  6048. {
  6049. - ShadowClass=Class'HarryPotter.HarryShadow'
  6050. - eaid(0)="xa37dd45ffe10v ptۈ"̦ϝʾρǹ07cb3fa231144fe2e33ae4783feead2b8a73ff021fac326df0ef9753ab9cdf6573ddff0312fab0b0ff39779eaff312x"
  6051. - HurtSound(0)=Sound'HPSounds.Har_Emotes.ouch1'
  6052. - HurtSound(1)=Sound'HPSounds.Har_Emotes.ouch2'
  6053. - HurtSound(2)=Sound'HPSounds.Har_Emotes.ouch3'
  6054. - HurtSound(3)=Sound'HPSounds.Har_Emotes.ouch4'
  6055. - HurtSound(4)=Sound'HPSounds.Har_Emotes.ouch5'
  6056. - HurtSound(5)=Sound'HPSounds.Har_Emotes.ouch6'
  6057. - HurtSound(6)=Sound'HPSounds.Har_Emotes.ouch7'
  6058. - HurtSound(7)=Sound'HPSounds.Har_Emotes.ouch8'
  6059. - HurtSound(8)=Sound'HPSounds.Har_Emotes.ouch9'
  6060. - HurtSound(9)=Sound'HPSounds.Har_Emotes.ouch10'
  6061. - HurtSound(10)=Sound'HPSounds.Har_Emotes.ouch11'
  6062. - HurtSound(11)=Sound'HPSounds.Har_Emotes.ouch12'
  6063. - HurtSound(12)=Sound'HPSounds.Har_Emotes.ouch13'
  6064. - HurtSound(13)=Sound'HPSounds.Har_Emotes.oof1'
  6065. - HurtSound(14)=Sound'HPSounds.Har_Emotes.oof2'
  6066. - GroundSpeed=200
  6067. - AirSpeed=400
  6068. - AccelRate=1024
  6069. - JumpZ=245
  6070. - MaxMountHeight=96.5
  6071. - AirControl=0.25
  6072. - BaseEyeHeight=40.75
  6073. - EyeHeight=40.75
  6074. - MenuName="Harry"
  6075. - DrawType=DT_Mesh
  6076. - Mesh=SkeletalMesh'HarryPotter.skharryMesh'
  6077. - CollisionRadius=15
  6078. - CollisionHeight=42
  6079. - Mass=1
  6080. - Buoyancy=118.8
  6081. -}
  6082. + ShadowClass=Class'HarryPotter.HarryShadow'
  6083. + eaid(0)="xEU-0000004821-SD-001753aabac325f07cb3fa231144fe2e33ae4783feead2b8a73ff021fac326df0ef9753ab9cdf6573ddff0312fab0b0ff39779eaff312x"
  6084. + HurtSound(0)=Sound'HPSounds.Har_Emotes.ouch1'
  6085. + HurtSound(1)=Sound'HPSounds.Har_Emotes.ouch2'
  6086. + HurtSound(2)=Sound'HPSounds.Har_Emotes.ouch3'
  6087. + HurtSound(3)=Sound'HPSounds.Har_Emotes.ouch4'
  6088. + HurtSound(4)=Sound'HPSounds.Har_Emotes.ouch5'
  6089. + HurtSound(5)=Sound'HPSounds.Har_Emotes.ouch6'
  6090. + HurtSound(6)=Sound'HPSounds.Har_Emotes.ouch7'
  6091. + HurtSound(7)=Sound'HPSounds.Har_Emotes.ouch8'
  6092. + HurtSound(8)=Sound'HPSounds.Har_Emotes.ouch9'
  6093. + HurtSound(9)=Sound'HPSounds.Har_Emotes.ouch10'
  6094. + HurtSound(10)=Sound'HPSounds.Har_Emotes.ouch11'
  6095. + HurtSound(11)=Sound'HPSounds.Har_Emotes.ouch12'
  6096. + HurtSound(12)=Sound'HPSounds.Har_Emotes.ouch13'
  6097. + HurtSound(13)=Sound'HPSounds.Har_Emotes.oof1'
  6098. + HurtSound(14)=Sound'HPSounds.Har_Emotes.oof2'
  6099. + GroundSpeed=200
  6100. + AirSpeed=400
  6101. + AccelRate=1024
  6102. + JumpZ=245
  6103. + MaxMountHeight=96.5
  6104. + AirControl=0.25
  6105. + BaseEyeHeight=40.75
  6106. + EyeHeight=40.75
  6107. + MenuName="Harry"
  6108. + DrawType=DT_Mesh
  6109. + Mesh=SkeletalMesh'HarryPotter.skharryMesh'
  6110. + CollisionRadius=15
  6111. + CollisionHeight=42
  6112. + Mass=1
  6113. + Buoyancy=118.8
  6114. + RotationRate=(Pitch=20000,Yaw=70000,Roll=3072) //added the rotation rate in the default props -AdamJD
  6115. +}
  6116. \ No newline at end of file
  6117. diff --git a/Hub2/Classes/BroomDraco.uc b/Hub2/Classes/BroomDraco.uc
  6118. index b27e725..e0148b1 100644
  6119. --- a/Hub2/Classes/BroomDraco.uc
  6120. +++ b/Hub2/Classes/BroomDraco.uc
  6121. @@ -3,6 +3,8 @@
  6122. //=============================================================================
  6123. class BroomDraco extends QuidPlayer;
  6124.  
  6125. +//Edited by- AdamJD (edited code will have AdamJD by it)
  6126. +
  6127. var GameReferee Referee; // Object in charge of the rules of the current mini-game
  6128. var BroomHarry Harry;
  6129.  
  6130. @@ -78,7 +80,7 @@ function Touch( Actor Other)
  6131. {
  6132. // Just stumble (don't damage, like what a QuidPlayer would do) and count bumps
  6133.  
  6134. - if ( !bHit && Other == Harry && Bumps < BumpsToWin-1 )
  6135. + if ( !bHit && Other == Harry && Bumps < BumpsToWin/*-1*/ ) //makes sure Dracos health goes to 0 -AdamJD
  6136. {
  6137. bHit = true;
  6138. PlayAnim( 'Bumped' );
  6139. @@ -86,7 +88,7 @@ function Touch( Actor Other)
  6140. PlaySound( BumpEmoteSounds[ Rand( NUM_BUMP_EMOTES ) ], SLOT_Talk, , , 2000.0 ); // Radius makes sure he can be heard
  6141.  
  6142. ++Bumps;
  6143. - if ( Bumps >= BumpsToWin-1 )
  6144. + if ( Bumps >= BumpsToWin/*-1*/ ) //makes sure Dracos health goes to 0 -AdamJD
  6145. Referee.Trigger( Self, None ); // Tell referee that Draco almost gives up
  6146.  
  6147. Velocity = vect(0,0,1);
  6148. diff --git a/Hub2/Classes/QuidditchReferee.uc b/Hub2/Classes/QuidditchReferee.uc
  6149. index 1e34d72..f6550dc 100644
  6150. --- a/Hub2/Classes/QuidditchReferee.uc
  6151. +++ b/Hub2/Classes/QuidditchReferee.uc
  6152. @@ -3,6 +3,8 @@
  6153. //=============================================================================
  6154. class QuidditchReferee extends GameReferee;
  6155.  
  6156. +//Edited by- AdamJD (edited code will have AdamJD by it)
  6157. +
  6158. var BroomHarry Harry;
  6159. var QuidPlayer Seeker; // Opponent team's seeker
  6160. var Snitch Snitch;
  6161. @@ -797,26 +799,29 @@ state GameCatch
  6162.  
  6163. PlayerHarry.ClientMessage( "Entered GameCatch State" );
  6164. Log( "Entered GameCatch State" );
  6165. -
  6166. - CatchTriesLeft = SnitchMaxCatchTries;
  6167. - SetTimer( 10.0, false ); // Watchdog timer in case Harry never reaches ground
  6168. +
  6169. + //not needed -AdamJD
  6170. + // CatchTriesLeft = SnitchMaxCatchTries;
  6171. + // SetTimer( 10.0, false ); // Watchdog timer in case Harry never reaches ground
  6172.  
  6173. // Make Harry trail the snitch
  6174. - Harry.GotoState( 'Pursue' );
  6175. + // Harry.GotoState( 'Pursue' ); //not needed -AdamJD
  6176. + Harry.GotoState( 'Catching' ); //the pursue state is bugged with the new code so go straight to catching the snitch -AdamJD
  6177.  
  6178. // Make bludgers stop seeking Harry
  6179. foreach AllActors( class'Bludger', Bludger )
  6180. Bludger.SeekTarget( None );
  6181.  
  6182. + //not needed -AdamJD
  6183. // Switch to catch-the-snitch hud element
  6184. - QuidHud( Harry.MyHud ).PlayHUDGame(true);
  6185. - QuidHud( Harry.MyHud ).SetHUDGameType(HUDG_QUIDDITCH);
  6186. -
  6187. - Harry.cam.gotostate('LockAroundHarry');
  6188. - Harry.cam.CameraDistance = 200.000;
  6189. - Harry.cam.TargetRot = rot(5000, 5000, 0);
  6190. + // QuidHud( Harry.MyHud ).PlayHUDGame(true);
  6191. + // QuidHud( Harry.MyHud ).SetHUDGameType(HUDG_QUIDDITCH);
  6192. +
  6193. + // Harry.cam.gotostate('LockAroundHarry');
  6194. + // Harry.cam.CameraDistance = 200.000;
  6195. + // Harry.cam.TargetRot = rot(5000, 5000, 0);
  6196. }
  6197. -
  6198. +
  6199. function Tick( float DeltaTime )
  6200. {
  6201. local TeamAffiliation eTeam;
  6202. @@ -844,7 +849,9 @@ state GameCatch
  6203. fTimeToCheer = Level.TimeSeconds + 8.0 + 3.0*FRand();
  6204. }
  6205. }
  6206. -
  6207. +
  6208. + //not needed -AdamJD
  6209. + /*
  6210. function OnActionKeyPressed()
  6211. {
  6212. // Called when the player's "Action" key/button is pressed.
  6213. @@ -852,7 +859,7 @@ state GameCatch
  6214.  
  6215. // Determine if snitch is caught; if so, goto Won state; otherwise
  6216. // either wait for a few more tries, or return to regular game play
  6217. - if ( QuidHud( Harry.MyHud ).HUDGameGrab() /*Snitch caught*/ )
  6218. + if ( QuidHud( Harry.MyHud ).HUDGameGrab() ) //snitch caught
  6219. {
  6220. // Caught the Snitch! Put snitch in harry's hand
  6221. if ( PlayMechanic == PM_ProximityWithHoops )
  6222. @@ -863,7 +870,7 @@ state GameCatch
  6223.  
  6224. QuidHud(Harry.myHUD).DestroyPopup();
  6225.  
  6226. - // Tell seeker to stop looking for the Snitch
  6227. + Tell seeker to stop looking for the Snitch
  6228. if ( Seeker != None )
  6229. Seeker.SetLookForTarget( None );
  6230.  
  6231. @@ -874,7 +881,7 @@ state GameCatch
  6232. --CatchTriesLeft;
  6233. if ( CatchTriesLeft <= 0 )
  6234. {
  6235. - // Turn off hud progress element
  6236. + Turn off hud progress element
  6237. QuidHud( Harry.MyHud ).PlayHUDGame(false);
  6238. QuidHud(Harry.myHUD).DestroyPopup();
  6239. Harry.cam.gotostate('QuidditchState');
  6240. @@ -883,8 +890,10 @@ state GameCatch
  6241. GotoState( 'GamePlay' );
  6242. }
  6243. }
  6244. - }
  6245. -
  6246. + }*/
  6247. +
  6248. + //not needed -AdamJD
  6249. + /*
  6250. function Timer()
  6251. {
  6252. // Never actioned on the snitch; go back to regular gameplay
  6253. @@ -892,11 +901,11 @@ state GameCatch
  6254. // Turn off hud progress element
  6255. QuidHud( Harry.MyHud ).PlayHUDGame(false);
  6256. QuidHud(Harry.myHUD).DestroyPopup();
  6257. - Harry.cam.gotostate('QuidditchState');
  6258. + Harry.cam.gotostate('QuidditchState'); //not needed -AdamJD
  6259.  
  6260. Harry.GotoState( 'PlayerWalking' );
  6261. GotoState( 'GamePlay' );
  6262. - }
  6263. + }*/
  6264.  
  6265. function EndState()
  6266. {
  6267. @@ -907,6 +916,19 @@ state GameCatch
  6268. Harry.StopFlyingOnPath();
  6269. fProgressPercent = 75.0;
  6270. }
  6271. +
  6272. + //code copied from OnActionKeyPressed function to make Harry catch the snitch -AdamJD
  6273. + Begin:
  6274. + Snitch.HoopTrail.GotoState( 'TrailOff' );
  6275. + Snitch.StopFlyingOnPath();
  6276. + Harry.CatchTarget( Snitch, 'IPHarry_Win' );
  6277. + Snitch.Halo.bHidden = true;
  6278. +
  6279. + // Tell seeker to stop looking for the Snitch
  6280. + if ( Seeker != None )
  6281. + Seeker.SetLookForTarget( None );
  6282. +
  6283. + GotoState( 'GameWon' );
  6284. }
  6285.  
  6286. state GameWon
  6287. @@ -952,10 +974,11 @@ Begin:
  6288. Commentator.SayComment( QC_SigningOff );
  6289. Sleep( Commentator.TimeLeftUntilSafeToSayAComment( true ) );
  6290. }
  6291. - else
  6292. - {
  6293. - Sleep( 12.0 );
  6294. - }
  6295. + //not needed- AdamJD
  6296. + // else
  6297. + // {
  6298. + // Sleep( 12.0 );
  6299. + // }
  6300.  
  6301. if ( bLeagueMode )
  6302. {
  6303. diff --git a/Hub2/Classes/RemembrallReferee.uc b/Hub2/Classes/RemembrallReferee.uc
  6304. index 195905a..66cc04b 100644
  6305. --- a/Hub2/Classes/RemembrallReferee.uc
  6306. +++ b/Hub2/Classes/RemembrallReferee.uc
  6307. @@ -3,6 +3,8 @@
  6308. //=============================================================================
  6309. class RemembrallReferee extends GameReferee;
  6310.  
  6311. +//Edited by- AdamJD (edited code will have AdamJD by it)
  6312. +
  6313. var BroomHarry Harry;
  6314. var BroomDraco Draco;
  6315.  
  6316. @@ -240,7 +242,8 @@ state GamePlay
  6317. // bump away from giving up
  6318. if ( Other == Draco )
  6319. {
  6320. - GotoState( 'GameBump' );
  6321. + // GotoState( 'GameBump' ); //not needed -AdamJD
  6322. + GotoState( 'GameWon' ); // state GameBump is bugged with the new code so go staight to GameWon -AdamJD
  6323. }
  6324. else
  6325. {
  6326. @@ -269,6 +272,8 @@ begin:
  6327.  
  6328. state GameBump
  6329. {
  6330. + //not needed -AdamJD
  6331. + /*
  6332. function BeginState()
  6333. {
  6334. // Start chasing Draco
  6335. @@ -315,14 +320,15 @@ state GameBump
  6336. if ( Other == Draco )
  6337. {
  6338. // Turn off hud bump element and reset camera
  6339. -
  6340. + Draco.OnBroomBump( Harry );
  6341. + QuidHUD(playerHarry.myHUD).DestroyPopup();
  6342. // Make Draco throw Remembrall to Harry
  6343. Harry.SetLookForTarget( None );
  6344. GotoState( 'GameWon' );
  6345. }
  6346. else
  6347. {
  6348. - // Unexpected trigger event
  6349. + Unexpected trigger event
  6350. Super.Trigger( Other, EventInstigator );
  6351. }
  6352. }
  6353. @@ -330,7 +336,7 @@ state GameBump
  6354. function Timer()
  6355. {
  6356. // Never actioned on Draco; go back to regular gameplay
  6357. -
  6358. +
  6359. // Turn off hud bump element and reset camera
  6360. Harry.cam.gotostate('QuidditchState');
  6361. Harry.StandardTarget.TargetOffset = vect(100, 0 ,50);
  6362. @@ -347,14 +353,19 @@ state GameBump
  6363. Log( "Exited GameBump State" );
  6364.  
  6365. SetTimer( 0.0, false );
  6366. - Harry.StopFlyingOnPath();
  6367. - --Draco.Bumps;
  6368. + Harry.StopFlyingOnPath();
  6369. + // --Draco.Bumps;
  6370. }
  6371. + */
  6372. }
  6373.  
  6374. state GameWon
  6375. {
  6376. Begin:
  6377. + Draco.OnBroomBump( Harry ); //Bump Draco -AdamJD
  6378. + Harry.SetLookForTarget( None ); //Harry now looks for no target -AdamJD
  6379. + Draco.GotoState('SpinOut'); //play Dracos spin out anim -AdamJD
  6380. + Sleep(2); //this is needed to make sure Draco appears in the beaten cutscene -AdamJD
  6381. // Go to Win cutscene
  6382. Harry.BossTarget = none;
  6383. TriggerEvent( 'Win', self, None );
  6384. diff --git a/Hub3/Classes/BathroomTroll.uc b/Hub3/Classes/BathroomTroll.uc
  6385. index 19cace8..bc28d0a 100644
  6386. --- a/Hub3/Classes/BathroomTroll.uc
  6387. +++ b/Hub3/Classes/BathroomTroll.uc
  6388. @@ -1,5 +1,7 @@
  6389. class BathroomTroll expands BaseTroll;
  6390.  
  6391. +//Edited by- AdamJD (edited code will have AdamJD by it)
  6392. +
  6393. var float TimeRemaining;
  6394. var BaseToiletObject ThrownObject;
  6395.  
  6396. @@ -27,10 +29,10 @@ auto state Initial
  6397. function beginstate()
  6398. {
  6399.  
  6400. - //foreach AllActors(class'baseharry', playerHarry)
  6401. - //{
  6402. - // break;
  6403. - //}
  6404. + // foreach AllActors(class'baseharry', playerHarry)
  6405. + // {
  6406. + // break;
  6407. + // }
  6408.  
  6409. foreach AllActors(class'BathroomRon', CastingRon)
  6410. {
  6411. @@ -40,7 +42,7 @@ auto state Initial
  6412. //Temp set up for this test
  6413. // basewand(playerHarry.weapon).addspell(class'spellflip');
  6414. playerHarry.bosstarget = self;
  6415. -// playerHarry.cam.gotostate('bossstate');
  6416. + //playerHarry.cam.gotostate('bossstate');
  6417.  
  6418. loopanim('breathe');
  6419. // gotostate('combat');
  6420. @@ -155,10 +157,11 @@ state Combat
  6421.  
  6422. if (animframe > 0.6 && bThrowing)
  6423. {
  6424. - if( FRand() < 0.8 )
  6425. + //casting at objects thrown at Ron is bugged for the new Harry code so I've made all the objects go towards Harry -AdamJD
  6426. + // if( FRand() < 0.8 )
  6427. ThrownObject.ThrowObject(playerHarry);
  6428. - else
  6429. - ThrownObject.ThrowObject(CastingRon);
  6430. + // else
  6431. + // ThrownObject.ThrowObject(CastingRon);
  6432.  
  6433. // PlaySound(sound'HPSounds.Hub1_sfx.peeves_Throws', SLOT_None, [Volume]RandRange(0.8, 1.0), [Radius]100000, [Pitch]RandRange(0.9, 1.1) ); //break;
  6434. switch( Rand(3) )
  6435. diff --git a/Hub4/Classes/BaseSneakActor.uc b/Hub4/Classes/BaseSneakActor.uc
  6436. index c530dcf..e7ae319 100644
  6437. --- a/Hub4/Classes/BaseSneakActor.uc
  6438. +++ b/Hub4/Classes/BaseSneakActor.uc
  6439. @@ -4,6 +4,8 @@
  6440.  
  6441. class BaseSneakActor extends baseChar;
  6442.  
  6443. +//Edited by- AdamJD (edited code will have AdamJD by it)
  6444. +
  6445. // These are so we can keep track of the running speed and animations, since these characters vary between
  6446. // walking and running pretty often...
  6447. var int OldGroundspeed; // The Original Walk Speed
  6448. @@ -233,11 +235,13 @@ function FindHarryTick(float DeltaTime)
  6449. if(playerHarry.Opacity >= 0.8)
  6450. {
  6451. playerHarry.clientMessage("BaseSneakActor went to state RunLocation");
  6452. - gotostate('RunLocation');
  6453. + //gotostate('RunLocation'); //old retail code -AdamJD
  6454. + gotostate('Caught'); //make Harry caught if Filch sees him when visible instead of running towards him -AdamJD
  6455. }
  6456. }
  6457.  
  6458. - if (playerHarry.IsInState('playeraiming')) // Must be casting a spell
  6459. + //if (playerHarry.IsInState('playeraiming')) // Must be casting a spell //old not needed retail PlayerAiming state -AdamJD
  6460. + if (InvisHarry.bPlayerCasting) //is InvisibleHarry casting? -AdamJD
  6461. {
  6462. if(cansee(playerHarry))
  6463. {
  6464. @@ -252,7 +256,7 @@ function FindHarryTick(float DeltaTime)
  6465.  
  6466. foreach allActors(class'InvisibleHarry', InvisHarry)
  6467. {
  6468. - if( InvisHarry.bIsPlayer&& InvisHarry!=Self)
  6469. + if( InvisHarry.bIsPlayer && InvisHarry!=Self)
  6470. {
  6471. // We can only hear him if he's moving
  6472. if(InvisHarry.IsMoving)
  6473. @@ -482,6 +486,7 @@ state RunLocation
  6474. }
  6475.  
  6476. Begin:
  6477. +
  6478. // Make the Run Speed Really Fast
  6479. groundspeed = RunningSpeed;
  6480.  
  6481. diff --git a/Hub4/Classes/InvisibleHarry.uc b/Hub4/Classes/InvisibleHarry.uc
  6482. index 1297375..6ff2c9a 100644
  6483. --- a/Hub4/Classes/InvisibleHarry.uc
  6484. +++ b/Hub4/Classes/InvisibleHarry.uc
  6485. @@ -5,6 +5,8 @@
  6486.  
  6487. class InvisibleHarry extends Harry;
  6488.  
  6489. +//Edited by- AdamJD (edited code will have AdamJD by it)
  6490. +
  6491. // Make this setable in the Editor so we can tweak it...
  6492. var () float InvisibleValue;
  6493. var Texture HitTexture; // This is global to the class here so we can check it from Filch & Norris
  6494. @@ -87,9 +89,12 @@ function MakeVisible(float DeltaTime)
  6495.  
  6496. function OverrideTick(float DeltaTime)
  6497. {
  6498. + local bool isDebugged;
  6499. +
  6500. // This lets us know that, in fact, this function is not called all the time...
  6501. -
  6502. - if(!IsInState('playeraiming'))
  6503. +
  6504. + //if(!IsInState('playeraiming')) //old not needed retail PlayerAiming state -AdamJD
  6505. + if(!bPlayerCasting) //is player not casting? -AdamJD
  6506. {
  6507. if(bHasCloak)
  6508. MakeInvisible(DeltaTime);
  6509. @@ -100,23 +105,40 @@ function OverrideTick(float DeltaTime)
  6510. {
  6511. MakeVisible(DeltaTime);
  6512. }
  6513. -
  6514. +
  6515. + //old retail code -AdamJD
  6516. + /*
  6517. // Now signal for Movement
  6518. if(VSize (LastLocation - location) > FlagMovementRadius)
  6519. {
  6520. - // ***************** Diagnostics
  6521. - //if(!IsMoving)
  6522. - // clientmessage("Harry Started Moving.");
  6523. + //Diagnostics
  6524. + if(!IsMoving)
  6525. + clientmessage("Harry Started Moving.");
  6526. IsMoving = true;
  6527. }
  6528. else
  6529. {
  6530. - // ***************** Diagnostics
  6531. - //if(IsMoving)
  6532. - // clientmessage("Harry Stopped Moving.");
  6533. + //Diagnostics
  6534. + if(IsMoving)
  6535. + clientmessage("Harry Stopped Moving.");
  6536. IsMoving = false;
  6537. }
  6538. -
  6539. + */
  6540. +
  6541. + //Player is not touching a movement key or is in a cutscene -AdamJD
  6542. + if( Acceleration == vect(0,0,0) )
  6543. + {
  6544. + IsMoving = false;
  6545. + //ClientMessage("Harry not moving"); //for testing -AdamJD
  6546. + }
  6547. +
  6548. + //Player has touched a movement key so therefore Harry is now moving -AdamJD
  6549. + else
  6550. + {
  6551. + IsMoving = true;
  6552. + //ClientMessage("Harry is moving"); //for testing -AdamJD
  6553. + }
  6554. +
  6555. LastLocation = location;
  6556. }
  6557.  
  6558. @@ -195,6 +217,18 @@ state harryfrozen
  6559. Super.PlayerTick(DeltaTime);
  6560.  
  6561. OverrideTick(DeltaTime);
  6562. +
  6563. + //stop casting and turn off cursor if caught -AdamJD
  6564. + if(bPlayerCasting == true)
  6565. + {
  6566. + bPlayerCasting = false;
  6567. + StopCasting();
  6568. + baseWand(weapon).bPointing = false;
  6569. + basewand(weapon).bCasting=false;
  6570. + baseWand(Weapon).WandEffect.bHidden = true;
  6571. + rectarget.destroy();
  6572. + StopSoundFX();
  6573. + }
  6574. }
  6575.  
  6576. function ProcessMove(float DeltaTime, vector NewAccel, eDodgeDir DodgeMove, rotator DeltaRot)
  6577. @@ -218,7 +252,7 @@ state harryfrozen
  6578. bPressedJump = false;
  6579. }
  6580.  
  6581. - if ( (Physics == PHYS_Walking) )
  6582. + if ( (Physics == PHYS_Walking) )
  6583. {
  6584. loopanim('caughtbyfilch');
  6585. }
  6586. @@ -299,6 +333,8 @@ state Mounting
  6587. }
  6588. }
  6589.  
  6590. +//old not needed retail PlayerAiming state -AdamJD
  6591. +/*
  6592. state playeraiming
  6593. {
  6594. event PlayerTick(float DeltaTime)
  6595. @@ -308,7 +344,7 @@ state playeraiming
  6596. Super.PlayerTick(DeltaTime);
  6597. }
  6598. }
  6599. -
  6600. +*/
  6601.  
  6602. state PlayerWalking
  6603. {
  6604. @@ -317,6 +353,12 @@ state PlayerWalking
  6605. Super.PlayerTick(DeltaTime);
  6606.  
  6607. OverrideTick(DeltaTime);
  6608. +
  6609. + //if player is casting then make Harry visible -AdamJD
  6610. + if (bPlayerCasting == true)
  6611. + {
  6612. + MakeVisible(DeltaTime);
  6613. + }
  6614. }
  6615. }
  6616.  
  6617. diff --git a/Hub5/Classes/FlyingKeyReferee.uc b/Hub5/Classes/FlyingKeyReferee.uc
  6618. index 43f6949..faecf6c 100644
  6619. --- a/Hub5/Classes/FlyingKeyReferee.uc
  6620. +++ b/Hub5/Classes/FlyingKeyReferee.uc
  6621. @@ -3,6 +3,7 @@
  6622. //=============================================================================
  6623. class FlyingKeyReferee extends QuidditchReferee;
  6624.  
  6625. +//Edited by- AdamJD (edited code will have AdamJD by it)
  6626.  
  6627. //-------------------------------------------------------------------------------------------
  6628. // PostBeginPlay()
  6629. @@ -61,6 +62,10 @@ Begin:
  6630. // Go to Win cutscene
  6631. Sleep( 3.0 );
  6632. TriggerEvent( 'Win', self, None );
  6633. + //makes broomHarry and snitch invisible during the end cutscene -AdamJD
  6634. + Sleep(2);
  6635. + Harry.bHidden = true;
  6636. + Snitch.bHidden = true;
  6637.  
  6638. loop:
  6639. Sleep( 0.1 );
  6640. @@ -94,6 +99,18 @@ state GameCatch
  6641. super.BeginState();
  6642. QuidHud( Harry.MyHud ).SetHUDGameType(HUDG_FLYINGKEYS);
  6643. }
  6644. +
  6645. + //go back to chasing the key if the player didn't get the key in Harrys hand -AdamJD
  6646. + function Timer()
  6647. + {
  6648. + super.Timer();
  6649. + }
  6650. +
  6651. + //go back to chasing the key if the player didn't get the key in Harrys hand -AdamJD
  6652. + function EndState()
  6653. + {
  6654. + super.EndState();
  6655. + }
  6656. }
  6657.  
  6658. defaultproperties
  6659. diff --git a/Tut1/Classes/tut1Peeves.uc b/Tut1/Classes/tut1Peeves.uc
  6660. index 29e084a..097f824 100644
  6661. --- a/Tut1/Classes/tut1Peeves.uc
  6662. +++ b/Tut1/Classes/tut1Peeves.uc
  6663. @@ -1,6 +1,6 @@
  6664. class tut1Peeves expands peeves;
  6665.  
  6666. -
  6667. +//Edited by- AdamJD (edited code will have AdamJD by it)
  6668.  
  6669. var float hitCount;
  6670. var sound peevesVoice;
  6671. @@ -239,7 +239,7 @@ begin:
  6672. findcam();
  6673. Opacity=1;
  6674. hugcamera=true;
  6675. - pcam.gotostate('cutstate');
  6676. + //pcam.gotostate('cutstate'); //the camera locks when hitting Peeves in the new camera code so I've turned this off -AdamJD
  6677. SetPhysics(PHYS_rotating);
  6678. // PlaySound(sound 'HPSounds.peeves_sfx.pee_009', SLOT_Talk, 3.2, false, 2000.0, 1.0);
RAW Paste Data