Advertisement
Guest User

Untitled

a guest
Jan 15th, 2018
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.55 KB | None | 0 0
  1. package java.game;
  2.  
  3. import java.io.*;
  4. import java.util.*;
  5. import java.util.resource.*;
  6. import java.render.*; //Text
  7. import java.render.osd.*; //Text
  8. import java.sound.*;
  9. import java.game.*;
  10.  
  11. abstract public class Track extends Scene implements GameState
  12. {
  13. final static int RID_CHEVYVAN = cars.traffic.chevy_van:0x00000005r;
  14.  
  15. //ezeket a leszarmazott allitsa be!
  16. abstract Vector3 posStart, posStart2;
  17. abstract Ypr oriStart, oriStart2;
  18.  
  19. //hold the id of the currently active trigger (shop, garage, etc)
  20. int activeTrigger;
  21. Vector trigger = new Vector();
  22.  
  23. GameState parentState;
  24.  
  25. Osd osd, MirrorOsd;
  26. int osdCounter, navCounter;
  27.  
  28. IngameMenu ingameMenu;
  29. int im_active;
  30.  
  31. float camRotate, camTilt;
  32.  
  33. int killCar;
  34. int Color_Number;
  35.  
  36. final static int CMD_CHANGECAM_TV = 0;
  37. final static int CMD_INGAMEMENU = 1;
  38. final static int CMD_MECHANIC = 2;
  39. final static int CMD_CAMMOVE = 3;
  40. final static int CMD_OPPCAM = 4;
  41. final static int CMD_PAINT = 5;
  42. final static int CMD_OSDONOFF = 6;
  43. final static int CMD_CHANGECAM_INT = 7;
  44. final static int CMD_CHANGECAM_EXT = 8;
  45. final static int CMD_CRUISECONTROL = 9;
  46. final static int CMD_CHANGECAM_CHASE = 10;
  47. final static int CMD_CHANGECAM_INVCH = 11;
  48. final static int CMD_CHANGECAM_FREE = 12;
  49. final static int CMD_SIMSPEEDINC = 13;
  50. final static int CMD_SIMSPEEDDEC = 14;
  51. final static int CMD_SIMPAUSE = 15;
  52. final static int CMD_CAMROTATE = 16;
  53. final static int CMD_QUICKREPAIR = 17;
  54. final static int CMD_CHANGECAMTARGET = 18;
  55. final static int CMD_EXIT = 19;
  56. //final static int CMD_FILTER = 25;
  57. final static int CMD_TILT7 = 26;
  58. final static int CMD_TILT8 = 27;
  59. final static int CMD_TILT9 = 28;
  60. final static int CMD_TILT0 = 29;
  61. final static int CMD_POSITION = 30;
  62. final static int CMD_LIGHTSONOFF = 31;
  63. final static int CMD_CHANGETIME = 32;
  64. final static int CMD_NAVONOFF = 33;
  65.  
  66. final static int CMD_MIRROR = 20;
  67. final static int CMD_REPAIR = 21;
  68. final static int CMD_MAP = 22;
  69. final static int CMD_LOOKBACK = 23;
  70.  
  71. // Hydraulic suspension:
  72. final static int CMD_SUSP_FL = 41;
  73. final static int CMD_SUSP_F = 42;
  74. final static int CMD_SUSP_FR = 43;
  75. final static int CMD_SUSP_LS = 44;
  76. final static int CMD_SUSP_ALL = 45;
  77. final static int CMD_SUSP_RS = 46;
  78. final static int CMD_SUSP_RL = 47;
  79. final static int CMD_SUSP_R = 48;
  80. final static int CMD_SUSP_RR = 49;
  81.  
  82. final static int CMD_SUSP_MODE = 50;
  83.  
  84. Navigator nav;
  85. Marker mPlayer, mPlayer2;
  86.  
  87. Player player, player2;
  88. GameRef cursor;
  89.  
  90. //message display
  91. Text messages;
  92. Text infoline;
  93. int msgtimers;
  94. int osdEnabled, navEnabled;
  95.  
  96. //cam
  97. GameRef cam_external; //external camera instance
  98. GameRef cam, MirCam; //currently active camera instance
  99. //GameRef renderer; // Current using camera
  100. GameRef cameraTarget; //car of the player (usually) or another bot
  101. GameRef cameraTarget2; //another car or object (police, racer, etc.)
  102. int cameraMode;
  103. int cameraNum; //ha pl. tobb camera van az adott cameraMode-hoz (pl. belso, de lehet TV, ext, stb. is)
  104.  
  105. Vector3 lastCamPos;
  106. Vector3 lastCrossPos; //for TV-camera
  107.  
  108. Viewport vport2, vp2;
  109.  
  110. final static int CAMMODE_NONE = 0;
  111. final static int CAMMODE_FOLLOW = 1;
  112. final static int CAMMODE_TV = 2;
  113. final static int CAMMODE_CHASE = 3;
  114. final static int CAMMODE_INVCH = 4;
  115. final static int CAMMODE_INTERNAL = 5;
  116. final static int CAMMODE_FREE = 6;
  117. final static int CAMMODE_POINT = 7;
  118.  
  119. Mechanic mechanic;
  120. Painter painter;
  121. int mc_active, pt_active;
  122.  
  123. Rectangle MirrorFrame, MapViewFrame;
  124. GameRef MirCam2;
  125. float Rot, Speed, TimeTextWait, camDist;
  126. int IntCamNumber, MirrorStatus = 0, TimeTextStatus, GetCarStatus = 0, RepairStatus = 0, MapStatus, OsdStatus, MapZ1, MapZ2;
  127. Text TimeText, TimeText2;
  128. final static float GPS_Min_Zoom = 2, GPS_Max_Zoom = 3;
  129.  
  130. GameRef Test;
  131. RenderRef Test_Render;
  132.  
  133. Vector3 rota;
  134.  
  135.  
  136. public Track()
  137. {
  138. createNativeInstance();
  139.  
  140. player=GameLogic.player;
  141. player2=GameLogic.player2;
  142. }
  143.  
  144.  
  145. public void animate()
  146. {
  147. /*if(player.car)
  148. {
  149. rota = new Vector3(Math.random()*0.1-0.05, Math.random()*0.1-0.05, 0);
  150. player.car.chassis.setSlotPos( 18, rota, null );
  151. player.car.chassis.setSlotPos( 23, rota, null );
  152. }*/
  153.  
  154. //setMessage( Math.sqrt(player.car.getSpeedSquare())*3.6 ); // Car Speed
  155.  
  156. if( TimeTextStatus == 1 && TimeTextWait < System.currentTime() )
  157. {
  158. float tim = System.timeWarp(-1.0);
  159. if( tim == 1.0 || tim == 0.0)
  160. {
  161. TimeTextStatus = 0;
  162. TimeText.changeText( "" );
  163. }
  164. }
  165.  
  166. if( nav && nav.cam )
  167. {
  168. if( player.car )
  169. {
  170. Speed = Math.sqrt(player.car.getSpeedSquare()) * 0.08;
  171. if (Speed > GPS_Max_Zoom)
  172. Speed = GPS_Max_Zoom;
  173. }
  174.  
  175. Vector3 CamPos;
  176. Ypr CamYpr;
  177. Vector3 RendererPos;
  178. Ypr RendererOri;
  179.  
  180. if( renderer )
  181. {
  182. RendererPos = renderer.getPos();
  183. RendererOri = renderer.getOri();
  184.  
  185. nav.gmCamera.setMatrix( new Vector3(RendererPos.x, 0.1, RendererPos.z), new Ypr(RendererOri.y, 0.0, 0.0) );
  186. nav.rmCamera.setMatrix( new Vector3(RendererPos.x/100, 0.1, RendererPos.z/100), new Ypr(RendererOri.y, 0.0, 0.0) );
  187. }
  188.  
  189. if( Config.gpsMode == 0 && player.car || Config.gpsMode == 1 && player.car )// Follow car
  190. {
  191. CamPos = player.car.getPos();
  192. Rot = 0;
  193.  
  194. if(Config.gpsMode == 1)
  195. Rot = player.car.getOri().y;
  196. }
  197. else
  198. if( Config.gpsMode == 2 && renderer || Config.gpsMode == 3 && renderer )
  199. {
  200. CamPos = RendererPos;
  201. Rot = 0;
  202.  
  203. if(Config.gpsMode == 3)
  204. Rot = RendererOri.y;
  205. }
  206.  
  207. nav.updateNavigator( player.car );
  208. nav.cam.setMatrix( new Vector3(CamPos.x/100, GPS_Min_Zoom + Speed, CamPos.z/100), new Ypr(Rot, -1.57, 0.0) );
  209. }
  210.  
  211. // Car position for modders
  212. /* if(player.car)
  213. {
  214. Vector3 CarVector = player.car.getPos();
  215. TimeText.changeText( "Pos: X: " + CarVector.x + ", Y: " + CarVector.y + ", Z: " + CarVector.z );
  216.  
  217. Ypr CarYpr = player.car.getOri();
  218. TimeText2.changeText( "Car Rotation: Y: " + CarYpr.y + ", P: " + CarYpr.p + ", R: " + CarYpr.r );
  219. }//*/
  220. }
  221.  
  222. public void Mirror( int mode )
  223. {
  224. if ( mode == 1)
  225. {
  226. if (!MirrorFrame)
  227. MirrorFrame = MirrorOsd.createRectangle( 0.0, -0.76, 1.04, 0.46, 2, new ResourceRef(MW_Mod:0x0023r) );
  228.  
  229. if( !vp2 )
  230. vp2 = new Viewport( 16, 0.25, 0.02, 0.5, 0.2 );
  231. GameRef MirTrg = new GameRef(cameraTarget.getInfo(GII_OWNER));
  232. cameraTarget.command( "render " + vp2.id() +" "+ MirTrg.id() +" "+ 6);
  233. //renderer = cameraTarget;
  234.  
  235. //MirCam = new Camera( map, vp2, 10, 100, 0.1, 50.0, 0.2, 5.0, 0, 0 );
  236.  
  237. //MirCam2 = new GameRef( player.car.chassis, GameRef.RID_CAMERA, player.car.getPos().toString() +","+ player.car.getOri().toString()+", 0x01,1.5,0.0", "s_cam" );
  238. //cam.command( "zoom 60 5");
  239. //cam.queueEvent( null, GameType.EVENT_COMMAND, "render " + vp2.id() + " 0 0 1 " + (Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET) );
  240. //cam.queueEvent( null, GameType.EVENT_COMMAND, "look "+ cars[curcar].id() +" 0.0, 0.0, 0.0");
  241. //cam.queueEvent( null, GameType.EVENT_COMMAND, "look "+ map.id() +" 0.0, 0.0, -1000.0");
  242.  
  243. //MirCam2.command( "install 0 " + player.car.id()+" 0 0 0 "+"0 0 0");//pos.x+" "+pos.y+" "+pos.z );
  244.  
  245. vp2.activate( Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET );
  246. }
  247. else
  248. if ( mode == 0)
  249. {
  250. if (MirrorFrame)
  251. {
  252. MirrorFrame.finalize();
  253. MirrorFrame=null;
  254. }
  255. if (vp2)
  256. {
  257. vp2.deactivate();
  258. vp2=null;
  259. }
  260. }
  261. }
  262.  
  263. //----------------------------------------------------------------------
  264.  
  265. final static public float Check( float key )
  266. {
  267. return Math.sqrt(key)+3.75;
  268. }
  269.  
  270.  
  271.  
  272. public void enter( GameState prev_state )
  273. {
  274.  
  275. float key = Math.random()*100;
  276. if( MainMenu.Check(key) != Math.sqrt(key)+3.75 ) Mirans_Mod_protection_error______Please_Resintal_Mirans_Mod();
  277.  
  278. if( prev_state instanceof RaceSetup )
  279. {
  280. }
  281. else
  282. {
  283. // cameraMode = CAMMODE_FOLLOW; //reset
  284.  
  285. enterAsyncMode_Script();
  286. t.setPriority( 2500 );
  287.  
  288. //test:
  289. //GameLogic.autoSaveQuiet();
  290.  
  291. //a gyerekosztalyok implementaljak a kov ket sort, az o enter() metodusukban!
  292. //Frontend.loadingScreen.show();
  293. //GfxEngine.flush();
  294.  
  295. parentState=prev_state;
  296.  
  297. MirrorOsd = new Osd( 1.0, 0.0, 18 );
  298. osd = new Osd();
  299. osd.menuKeysCreated = 1;
  300. //osd.iLevel=Osd.IL_KEYS;
  301. osd.alienMp = mp;
  302.  
  303. //only for ects/intel demo
  304. //osd.createRectangle( 0.70, -0.80, 0.5, 0.4, -1, new ResourceRef(frontend:0x00AAr) );
  305.  
  306.  
  307. //---------------------------------time of day dependent stuff:
  308. addSceneElements( GameLogic.getTime() );
  309. //-----------------------------------------------------------------------
  310.  
  311. msgtimers=0;
  312. messages=osd.createText( null, Frontend.largeFont, Text.ALIGN_CENTER, 0.0, -0.4 );
  313. TimeText=osd.createText( null, Frontend.largeFont, Text.ALIGN_CENTER, 0.0, -0.5 ); TimeText.changeColor(0xFFFFD600); //Yellow
  314. TimeText2=osd.createText( null, Frontend.largeFont, Text.ALIGN_CENTER, 0.0, -0.4 ); TimeText2.changeColor(0xFFFFD600); //Yellow
  315.  
  316. setEventMask( EVENT_CURSOR|EVENT_COMMAND|EVENT_HOTKEY|EVENT_TRIGGER_ON|EVENT_TRIGGER_OFF|EVENT_TIME );
  317.  
  318. //player
  319. player.render = new RenderRef( map, player.driverID, "player" );
  320. player.controller.command( "renderinstance " + player.render.id() );
  321.  
  322. if (player.car)
  323. {
  324. if( GameLogic.gameMode != GameLogic.GM_DEMO )
  325. {
  326. lockCar();
  327. player.car.command( "setsteer 0" );
  328.  
  329. //igy ha valtoztak a config beallitasok, az is szamit neki!
  330. player.car.setDefaultTransmission();
  331. player.car.setDefaultSteeringHelp();
  332. player.controller.command( "controllable " + player.car.id() );
  333. //player.car.chassis.Refresher_Start();
  334. }
  335.  
  336. lastCamPos = new Vector3( 0, 3, 6);
  337. lastCamPos.add( player.car.getPos() );
  338. changeCamTarget(player.car);
  339. changeCamFollow();// cameraPos );
  340.  
  341. map.command( "obs_add " + player.car.id() );
  342. }
  343.  
  344. if( GameLogic.gameMode == GameLogic.GM_MULTIPLAYER )
  345. {
  346. player2.render = new RenderRef( map, player2.driverID, "player2" );
  347. player2.controller.command( "renderinstance " + player2.render.id() );
  348.  
  349. if(player2.car)
  350. {
  351. if( !posStart2 )
  352. {
  353. posStart2 = new Vector3(posStart.x+10, posStart.y, posStart.z);
  354. oriStart2 = new Ypr ( oriStart.y, oriStart.p, oriStart.r );
  355. }
  356.  
  357. player2.car.setParent( map );
  358. player2.car.setMatrix( posStart2, oriStart2 );
  359. player2.car.command( "reset" );
  360. player2.car.command( "reload" ); //Fuel and NOS
  361.  
  362. player2.car.command( "setsteer 0" );
  363.  
  364. player2.car.setDefaultTransmission();
  365. player2.car.setDefaultSteeringHelp();
  366. player2.controller.command( "controllable " + player2.car.id() );
  367. }
  368. }
  369.  
  370. ingameMenu=new IngameMenu( this );
  371.  
  372. infoline=osd.createText( null, Frontend.mediumFont, Text.ALIGN_RIGHT, 0.97, 0.57);
  373.  
  374. osd.endGroup();
  375.  
  376. painter = new Painter( player, osd, null, infoline, 1 );
  377. mechanic = new Mechanic( player, osd, null, infoline, 1 );
  378.  
  379. osd.createHotkey( Input.RCDIK_TAB, Input.KEY|Osd.HK_STATIC, CMD_OSDONOFF, this );
  380. osd.createHotkey( Input.RCDIK_1, Input.KEY|Osd.HK_STATIC, CMD_SIMSPEEDDEC, this );
  381. osd.createHotkey( Input.RCDIK_2, Input.KEY|Osd.HK_STATIC, CMD_SIMSPEEDINC, this );
  382. osd.createHotkey( Input.RCDIK_3, Input.KEY|Osd.HK_STATIC, CMD_SIMPAUSE, this );
  383. osd.createHotkey( Input.RCDIK_4, Input.KEY|Osd.HK_STATIC, CMD_CAMROTATE, this );
  384. //osd.createHotkey( Input.RCDIK_5, Input.KEY|Osd.HK_STATIC, CMD_FILTER, this );
  385. osd.createHotkey( Input.RCDIK_7, Input.KEY|Osd.HK_STATIC, CMD_TILT7, this );
  386. osd.createHotkey( Input.RCDIK_8, Input.KEY, CMD_TILT8, this );
  387. osd.createHotkey( Input.RCDIK_9, Input.KEY, CMD_TILT9, this );
  388. osd.createHotkey( Input.RCDIK_0, Input.KEY|Osd.HK_STATIC, CMD_TILT0, this );
  389. osd.createHotkey( Input.RCDIK_L, Input.KEY, CMD_LIGHTSONOFF, this );
  390. osd.createHotkey( Input.RCDIK_T, Input.KEY, CMD_CHANGETIME, this );
  391. osd.createHotkey( Input.RCDIK_N, Input.KEY|Osd.HK_STATIC, CMD_NAVONOFF, this );
  392.  
  393. osd.createHotkey( Input.RCDIK_F1, Input.KEY|Osd.HK_STATIC, CMD_CHANGECAM_INT, this );
  394. osd.createHotkey( Input.RCDIK_F2, Input.KEY|Osd.HK_STATIC, CMD_CHANGECAM_TV, this );
  395. osd.createHotkey( Input.RCDIK_F3, Input.KEY|Osd.HK_STATIC, CMD_CHANGECAM_EXT, this );
  396. osd.createHotkey( Input.RCDIK_F4, Input.KEY|Osd.HK_STATIC, CMD_CHANGECAM_CHASE, this );
  397. osd.createHotkey( Input.RCDIK_F5, Input.KEY|Osd.HK_STATIC, CMD_CHANGECAM_INVCH, this );
  398. osd.createHotkey( Input.RCDIK_F6, Input.KEY|Osd.HK_STATIC, CMD_REPAIR, this );
  399. osd.createHotkey( Input.RCDIK_F7, Input.KEY|Osd.HK_STATIC, CMD_QUICKREPAIR, this );
  400. osd.createHotkey( Input.RCDIK_F9, Input.KEY|Osd.HK_STATIC, CMD_CHANGECAM_FREE, this );
  401. //cheat keys:
  402. if( GameLogic.cheats )
  403. {
  404. osd.createHotkey( Input.RCDIK_F8, Input.KEY|Osd.HK_STATIC, CMD_CHANGECAMTARGET, this );
  405. }
  406.  
  407. osd.createHotkey( Input.AXIS_MENU, Input.VIRTUAL|Osd.HK_STATIC, CMD_INGAMEMENU, this );
  408. osd.createHotkey( Input.AXIS_CURSOR_BUTTON2, Input.VIRTUAL|Osd.HK_STATIC, CMD_CAMMOVE, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  409.  
  410. osd.createHotkey( Input.AXIS_MAP, Input.VIRTUAL|Osd.HK_STATIC, CMD_MAP, this );
  411. osd.createHotkey( Input.RCDIK_P, Input.KEY|Osd.HK_STATIC, CMD_POSITION, this );
  412. osd.createHotkey( Input.AXIS_HELP, Input.VIRTUAL|Osd.HK_STATIC, CMD_CRUISECONTROL, this );
  413. osd.createHotkey( Input.AXIS_LOOK_REAR, Input.VIRTUAL|Osd.HK_STATIC, CMD_LOOKBACK, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  414.  
  415. // Pneumatic suspension
  416. osd.createHotkey( Input.AXIS_SPECIAL_1, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_FL, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  417. osd.createHotkey( Input.AXIS_SPECIAL_2, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_F, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  418. osd.createHotkey( Input.AXIS_SPECIAL_3, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_FR, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  419. osd.createHotkey( Input.AXIS_SPECIAL_4, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_LS, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  420. osd.createHotkey( Input.AXIS_SPECIAL_5, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_ALL, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  421. osd.createHotkey( Input.AXIS_SPECIAL_6, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_RS, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  422. osd.createHotkey( Input.AXIS_SPECIAL_7, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_RL, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  423. osd.createHotkey( Input.AXIS_SPECIAL_8, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_R, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  424. osd.createHotkey( Input.AXIS_FIRE_PRI, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_RR, Event.F_KEY_PRESS|Event.F_KEY_RELEASE );
  425. osd.createHotkey( Input.AXIS_FIRE_SEC, Input.VIRTUAL|Osd.HK_STATIC, CMD_SUSP_MODE, this );
  426.  
  427. MirrorOsd.show();
  428.  
  429. osd.show(); //kulonfele messageknek, hotkeyeknek kell
  430. osdEnabled = 1;
  431. enableOsd( osdEnabled ); //player osd, navigator
  432.  
  433. if( nav )
  434. {
  435. mPlayer = nav.addMarker( player );
  436.  
  437. if( GameLogic.gameMode == GameLogic.GM_MULTIPLAYER )
  438. mPlayer2 = nav.addMarker( GameLogic.player2 );
  439. }
  440.  
  441.  
  442. Sound.changeMusicSet( Sound.MUSIC_SET_DRIVING );
  443.  
  444. // special request: reset mouse and set sensitivity
  445. Input.getAxis (1, -1 - (Config.mouseSensitivity * 100.0f));
  446.  
  447. addTimer( 1, 2 ); //one sec tick starter
  448.  
  449. //start automatic camerachanges
  450. if (1)
  451. if( GameLogic.gameMode == GameLogic.GM_DEMO )
  452. addTimer (5, 4 );
  453. }
  454.  
  455. new ResourceRef( particles:0x0106r ).cache(); //def spark
  456. new ResourceRef( particles:0x0002r ).cache(); //def smoke
  457. new ResourceRef( particles:0x000Ar ).cache(); //def skidmark
  458.  
  459. new SfxRef( sound:0x000Br ).cache(); //def collision
  460. new SfxRef( sound:0x0006r ).cache(); //def skid
  461. new SfxRef( sound:0x0015r ).cache(); //def horn
  462. new SfxRef( sound:0x000Ar ).cache(); //def ignition
  463. new SfxRef( sound:0x0017r ).cache(); //def gear up
  464. new SfxRef( sound:0x0018r ).cache(); //def gear down
  465. new SfxRef( sound:0x001Ar ).precache(); //def air
  466. new SfxRef( sound:0x000Dr ).precache(); //tyre out
  467.  
  468. if( GameLogic.gameMode == GameLogic.GM_QUICKRACE && !(prev_state instanceof RaceSetup) )
  469. {
  470. }
  471. else
  472. {
  473. Thread.sleep( 1 ); // Wait
  474. Frontend.loadingScreen.hide(); //waits! -------------------------------------
  475. }
  476.  
  477. player.controller.reset();
  478. player.controller.activateState( ControlSet.DRIVERSET );
  479.  
  480. player2.controller.reset();
  481. player2.controller.activateState( ControlSet.DRIVERSET );
  482.  
  483. enableAnimateHook();
  484.  
  485. Mirror(MirrorStatus);
  486.  
  487. //Test = new GameRef( map, MW_Mod:0x0076r, "0,5,0"+","+"0,0,0," + 1, "nightracer1" );
  488. //Test = new GameRef( map, parts.wings:0x0028r, "0,5,0"+","+"0,0,0," + 1, "Wing" );
  489. //Test = new GameRef( map, cars.racers.addon:0x00000015r, "0,1,0"+","+"0,0,0," + 1, "Wing" );
  490.  
  491. //Test_Render = new RenderRef( map, maps.skydome:0x0013r, "egbolt-dawn_02" );
  492. Test_Render = new RenderRef( map, MW_Mod:0x0079r, "egbolt-dawn_02" );
  493. }
  494.  
  495. public void exit( GameState next_state )
  496. {
  497. disableAnimateHook();
  498.  
  499. if( next_state instanceof RaceSetup )
  500. {
  501. }
  502. else
  503. {
  504. removeAllTimers();
  505. trigger.removeAllElements();
  506.  
  507. changeCamNone();
  508.  
  509. if (player.car)
  510. {
  511. map.command( "obs_rem " + player.car.id() );
  512.  
  513. posStart = player.car.getPos();
  514. oriStart = player.car.getOri();
  515. player.controller.command( "leave " + player.car.id() );
  516. //player.car.chassis.Refresher_Stop();
  517. }
  518.  
  519. player.render.destroy();
  520. releaseCar();
  521.  
  522. if( killCar || GetCarStatus == 1 && GameLogic.gameMode == GameLogic.GM_CARREER )
  523. {
  524. player.car.destroy();
  525. player.car=null;
  526. killCar = 0;
  527. }
  528.  
  529. if (GameLogic.gameMode==GameLogic.GM_MULTIPLAYER && player2.car)
  530. {
  531. map.command( "obs_rem " + player2.car.id() );
  532.  
  533. posStart2 = player2.car.getPos();
  534. oriStart2 = player2.car.getOri();
  535. player2.controller.command( "leave " + player2.car.id() );
  536.  
  537. player2.render.destroy();
  538.  
  539. player2.car.command( "start" );
  540. player2.car.command( "reset" );
  541. player2.car.setParent( player2 );
  542. player2.car.setMatrix( null, null );
  543. }
  544.  
  545. mechanic.hide();
  546. painter.hide();
  547.  
  548. //kill sky and sun
  549. remSceneElements();
  550.  
  551. map.setWater(new Vector3(0.0,-1000000.0,-1500.0), new Vector3(0.0,1.0,0.0), 300.0, 50.0);
  552. map.delTraffic();
  553. map.setPedestrianDensity( 0.0 );
  554. map.unload();
  555.  
  556. osdEnabled = 0;
  557. enableOsd( osdEnabled );
  558.  
  559. if( nav )
  560. {
  561. //nav.hide();
  562. nav.remMarker( mPlayer ); mPlayer=null;
  563.  
  564. if(GameLogic.gameMode==GameLogic.GM_MULTIPLAYER)
  565. nav.remMarker( mPlayer2 );
  566. mPlayer2=null;
  567. }
  568.  
  569. if (MirrorFrame)
  570. MirrorFrame.finalize();
  571. Mirror(0);
  572.  
  573. osd.hide();
  574. osd=null;
  575.  
  576. clearEventMask( EVENT_ANY );
  577.  
  578. leaveAsyncMode_Script();
  579.  
  580. GfxEngine.flush();
  581.  
  582. }
  583.  
  584. //allitsa vissza az 'idoszamitast' ha pl verseny vegen a lassitott mod kozben lepteti ki!
  585. System.timeWarp(1.0);
  586.  
  587.  
  588. player.controller.reset();
  589. player.controller.activateState( ControlSet.MENUSET );
  590. }
  591.  
  592. //call this after camera settings have been changed
  593. public void resetCamera()
  594. {
  595. if( cameraMode == CAMMODE_TV || cameraMode == CAMMODE_FOLLOW )
  596. {
  597. cam.command( "render " + osd.getViewport().id() + " 0 0 1 " + (Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET) );
  598. renderer = cam;
  599.  
  600. //if(MB_Animator) MB_Animator.changeCam(renderer);
  601. }
  602. // else
  603. // System.log( "cannot reset unsupported cam type" );
  604. }
  605.  
  606.  
  607. public void changeCamTV( )//Vector3 destPos )
  608. {
  609. if ( !cameraTarget ) return;
  610. if ( !cameraTarget.id() ) return;
  611. Vector3 destPos = cameraTarget.getPos();
  612. if ( !destPos ) return;
  613. Vector3 actdestPos = new Vector3(destPos);
  614. Vector3 vel = cameraTarget.getVel();
  615. if (vel)
  616. {
  617. vel.mul(3.0f);
  618. destPos.add(vel);
  619. }
  620.  
  621. if( cameraMode == CAMMODE_INTERNAL && !cameraNum )
  622. player.car.command( "filter 3 0" ); //running geart kifilterezzuk
  623.  
  624. Vector3 camPos;
  625.  
  626. if (cameraMode == CAMMODE_FREE)
  627. {
  628. player.controller.command( "leave " + cam.id() );
  629. player.controller.command( "controllable " + player.car.id() );
  630. player.controller.activateState( 5, 0 );
  631.  
  632. lastCrossPos = map.getNearestCross( destPos, 0 ); //ToDo: getnearestCamera
  633. if (cam)
  634. camPos = cam.getPos();
  635. else
  636. camPos = destPos;
  637. } else
  638. {
  639. camPos = map.getNearestCross( destPos, 0 ); //ToDo: getnearestCamera
  640. if (camPos)
  641. {
  642. if (cameraMode == CAMMODE_TV)
  643. if (lastCrossPos)
  644. if (camPos.distance( lastCrossPos ) < 0.1)
  645. {
  646. //ha esetleg valtozott a cameratarget...
  647. ResourceRef bone = new ResourceRef( cameraTarget.getInfo(GameType.GII_BONE) );
  648. cam.command( "look " + bone.id() + " 0,0,-1" );
  649.  
  650. return;
  651. }
  652. lastCrossPos = new Vector3(camPos);
  653. camPos.y += 0.2 + 3.0*Math.random();
  654. } else
  655. {
  656. if (cam)
  657. camPos = cam.getPos();
  658. else
  659. camPos = destPos;
  660. if (!camPos)
  661. camPos = lastCamPos;
  662. }
  663.  
  664. if (cameraMode == CAMMODE_TV)
  665. {
  666. if (lastCamPos)
  667. {
  668. if (camPos.distance( lastCamPos ) < 0.1)
  669. return;
  670. if (lastCamPos.distance(actdestPos) < camPos.distance(actdestPos))
  671. return; //jobb a mostani
  672. }
  673. } else
  674. addTimer( 3,3 ); //start changing cameras every 3 seconds
  675. }
  676.  
  677. changeCamNone();
  678. if (!camPos) return;
  679.  
  680. Vector3 pTemp = new Vector3(actdestPos);
  681. pTemp.sub( camPos );
  682. Ypr yTemp = new Ypr( pTemp );
  683.  
  684. // cam = new GameRef( map, GameRef.RID_CAMERA, camPos.toString() + "," + yTemp.toString() + ",0x06", "track tv cam" );
  685. cam = new GameRef( map, GameRef.RID_CAMERA, camPos.toString() + "," + yTemp.toString() + ",0x02", "track tv cam" );
  686. cam.command( "autozoom 1 0 " + (0.2+Math.random()*0.8) + " " + (Math.random()*0.2) );
  687. cam.command( "render " + osd.getViewport().id() + " 0 0 1 " + (Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET) );
  688. renderer = cam;
  689. //if(MB_Animator) MB_Animator.changeCam(renderer);
  690. cam.command( "torque 0.1" );
  691. cam.command( "roll " + (Math.random()-0.5) );
  692.  
  693. lastCamPos = new Vector3(camPos);
  694. cameraMode = CAMMODE_TV;
  695.  
  696. // if (cameraTarget)
  697. // {
  698. // GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  699. // con.command( "viewport 0");// + osd.getViewport().id() );
  700. ResourceRef bone = new ResourceRef( cameraTarget.getInfo(GameType.GII_BONE) );
  701. cam.command( "look " + bone.id() + " 0,0,-1" );
  702. // if ( osdEnabled )
  703. // cameraTarget.command( "osd "+ osd.id() +" "+ con.id()); //enable osd
  704. // } else
  705. // cam.command( "look " + map.id() + destPos.toString() );
  706. }
  707.  
  708. public void changeCamInternal( )//Vector3 pos )
  709. {
  710. if (!cameraTarget) return;
  711. if (!cameraTarget.id()) return;
  712.  
  713. if (cameraMode == CAMMODE_FREE)
  714. {
  715. player.controller.command( "leave " + cam.id() );
  716. player.controller.command( "controllable " + player.car.id() );
  717. player.controller.activateState( 5, 0 );
  718. }
  719.  
  720. // changeCamNone();
  721.  
  722. int cameras = cameraTarget.getInfo( GameType.GII_RENDER );
  723. if (cameras == 0) return;
  724.  
  725. if (cameraMode == CAMMODE_INTERNAL)
  726. {//change to _next_ int.cam.
  727. if (++cameraNum >= cameras)
  728. cameraNum = 0;
  729.  
  730. if(cameras>2 && cameraNum >= cameras-2) // Skip mirror and look back cameras
  731. cameraNum = 0;
  732.  
  733. GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  734. cameraTarget.command( "render " + osd.getViewport().id() +" "+ con.id() +" "+ cameraNum);
  735. renderer = cameraTarget;
  736. //if(MB_Animator) MB_Animator.changeCam(renderer);
  737. } else
  738. {
  739. GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  740. if (cam)
  741. {
  742. lastCamPos = cam.getPos();
  743. cam.command( "hide " + osd.getViewport().id());
  744. if (cam != cam_external)
  745. cam.destroy(); //TV
  746. }
  747.  
  748. if (cameraNum < 0)
  749. cameraNum = (-cameraNum)%cameras;
  750. else
  751. cameraNum = 0;
  752.  
  753. cameraTarget.command( "render " + osd.getViewport().id() +" "+ con.id() +" "+ cameraNum);
  754. renderer = cameraTarget;
  755. //if(MB_Animator) MB_Animator.changeCam(renderer);
  756. // if ( osdEnabled )
  757. // cameraTarget.command( "osd 0 " + con.id()); //disable osd
  758. }
  759. cameraMode = CAMMODE_INTERNAL;
  760.  
  761. if( !cameraNum )
  762. player.car.command( "filter 3 2" ); //running geart kifilterezzuk
  763. else
  764. player.car.command( "filter 3 0" ); //running geart kifilterezzuk
  765.  
  766. }
  767.  
  768. public void changeCamInternal( int num )
  769. {
  770. if (cameraMode == CAMMODE_INTERNAL)
  771. {
  772. GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  773. cameraTarget.command( "render " + osd.getViewport().id() +" "+ con.id() +" "+ num);
  774. renderer = cameraTarget;
  775. //if(MB_Animator) MB_Animator.changeCam(renderer);
  776. }
  777. else
  778. {
  779. cameraNum = -num;
  780. changeCamInternal();
  781. }
  782. }
  783.  
  784. void makeCamExternal() //ennek ki kellene kapcsolnia a renderert, ha az nem az ext. cam.
  785. {
  786. Vector3 pos;
  787.  
  788. if (cameraMode == CAMMODE_FREE)
  789. {
  790. player.controller.command( "leave " + cam.id() );
  791. player.controller.command( "controllable " + player.car.id() );
  792. player.controller.activateState( 5, 0 );
  793. }
  794.  
  795. if( cameraMode == CAMMODE_INTERNAL && !cameraNum )
  796. player.car.command( "filter 3 0" ); //running geart kifilterezzuk
  797.  
  798.  
  799. if (cam_external)
  800. if (!cam_external.id())
  801. cam_external = null; //drop
  802.  
  803. if( cam_external )
  804. {
  805. if (renderer)
  806. if (renderer != cam_external)
  807. {
  808. renderer.command( "hide " + osd.getViewport().id());
  809. renderer = null;
  810. }
  811. /* if (cameraMode == CAMMODE_INTERNAL)
  812. {
  813. // GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  814. cameraTarget.command( "hide " + osd.getViewport().id());// +" "+ con.id());
  815. // if ( osdEnabled )
  816. // cameraTarget.command( "osd "+ osd.id() +" "+ con.id()); //enable osd
  817. }
  818. */ if (cam && cam != cam_external)
  819. {
  820. cam.destroy(); //TV
  821. cam = null;
  822. }
  823.  
  824. cam = cam_external;
  825. }
  826.  
  827. if (!cam_external)
  828. {
  829. changeCamNone();
  830.  
  831. if (lastCamPos)
  832. pos = lastCamPos;
  833. else
  834. pos = new Vector3(0,-10000,0); //patch
  835.  
  836. Vector3 pTemp = cameraTarget.getPos();
  837. if (!pTemp)
  838. {
  839. // System.log("Missing cameratarget! Ext.camera not created!");
  840. return;
  841. }
  842. Ypr yTemp;
  843. pTemp.sub( pos );
  844.  
  845. //ha tul mesze ment (tvben), lerakjuk moge
  846. if( pTemp.length() > 70.0 )
  847. {
  848. pos = cameraTarget.getPos();
  849. if (!pos) return;
  850. Vector3 displ = new Vector3( pTemp );
  851. displ.normalize();
  852. displ.mul( 5.0 );
  853.  
  854. pTemp = new Vector3( pos );
  855. pos.sub( displ );
  856. pos.y+=2.0;
  857.  
  858. pTemp.sub( pos );
  859.  
  860. yTemp = new Ypr( pTemp );
  861. }
  862. else
  863. {
  864. yTemp = new Ypr( pTemp );
  865. }
  866.  
  867. cam = new GameRef( map, GameRef.RID_CAMERA, pos.toString() + "," + yTemp.toString() + ",0x02, 1.0,0, 0.01", "external track cam" );
  868. cam_external = cam;
  869.  
  870. lastCamPos = new Vector3(pos);
  871. }
  872. }
  873.  
  874. public void changeCamFollow( )//Vector3 pos )
  875. {
  876. makeCamExternal();
  877.  
  878. cam.command( "dist 4.0 15.0");
  879. cam.command( "smooth 1.0 1.0");
  880. cam.command( "force 1.0 1.0 -1.0" ); //defaults are in config.java
  881. cam.command( "torque 0.2" );
  882. cam.command( "roll 0" );
  883.  
  884. //cam.command( "dist 2.0 10.0");
  885. //cam.command( "smooth 0.5 0.5");
  886. //cam.command( "force 1.6 0.5 -0.7" ); //defaults are in config.java
  887. //cam.command( "torque 0.1" );
  888. //cam.command( "roll 0" );
  889.  
  890. cam.command( "render " + osd.getViewport().id() + " 0 0 1 " + (Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET) );
  891. renderer = cam;
  892. //if(MB_Animator) MB_Animator.changeCam(renderer);
  893.  
  894. GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  895. con.command( "viewport " + osd.getViewport().id() );
  896. con.command( "camera " + cam.id() );
  897.  
  898. cameraMode = CAMMODE_FOLLOW;
  899. }
  900.  
  901. public void changeCamPoint( Vector3 pos )
  902. {
  903. makeCamExternal();
  904.  
  905. GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  906. con.command( "viewport 0");// + osd.getViewport().id() );
  907. ResourceRef bone = new ResourceRef( cameraTarget.getInfo(GameType.GII_BONE) );
  908.  
  909. Vector3 pTemp = cameraTarget.getPos();
  910. if (!pTemp) return;
  911. pTemp.sub( pos );
  912. Ypr yTemp = new Ypr( pTemp );
  913.  
  914. cam.command( "render " + osd.getViewport().id() + " 0 0 1 " + (Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET) );
  915. renderer = cam;
  916. //if(MB_Animator) MB_Animator.changeCam(renderer);
  917. cam.command( "move " + bone.id() + " 0,1,0 0.1 0,-0.2,-3" );
  918. cam.command( "look " + map.id() + " "+pos.x+","+pos.y+","+pos.z );
  919. cam.command( "roll " + (Math.random()-0.5) );
  920. cameraMode = CAMMODE_POINT;
  921. }
  922.  
  923. public void changeCamChase()
  924. {
  925. if (!cameraTarget2)
  926. {
  927. changeCamFollow();
  928. } else
  929. if (!cameraTarget2.id())
  930. {
  931. changeCamFollow();
  932. } else
  933. {
  934. makeCamExternal();
  935.  
  936. GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  937. con.command( "viewport 0");// + osd.getViewport().id() );
  938. ResourceRef bone = new ResourceRef( cameraTarget.getInfo(GameType.GII_BONE) );
  939. cam.command( "render " + osd.getViewport().id() + " 0 0 1 " + (Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET) );
  940. renderer = cam;
  941. //if(MB_Animator) MB_Animator.changeCam(renderer);
  942. // cam.command( "move " + bone.id() + " 0,1,0 0.1 0,-0.2,-8" );
  943. float roll = Math.random()-0.5;
  944. cam.command( "move " + bone.id() + " 0,"+(Math.random())+",0 0.01 " + roll*-3.0 + ",-0.2," + (-3-5*Math.random()) );
  945. cam.command( "look " + cameraTarget2.id() + " 0,0,-1 " + roll*0.6 + ",0,-1" );
  946. cam.command( "roll " + roll );
  947. cam.command( "zoom " + (20.0+70.0*Math.random()) +" 5" );
  948. }
  949. cameraMode = CAMMODE_CHASE;
  950. }
  951.  
  952. public void changeCamInvChase()
  953. {
  954. if (!cameraTarget2)
  955. {
  956. changeCamFollow();
  957. } else
  958. if (!cameraTarget2.id())
  959. {
  960. changeCamFollow();
  961. } else
  962. {
  963. makeCamExternal();
  964.  
  965. GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  966. con.command( "viewport 0");// + osd.getViewport().id() );
  967. ResourceRef bone = new ResourceRef( cameraTarget2.getInfo(GameType.GII_BONE) );
  968. cam.command( "render " + osd.getViewport().id() + " 0 0 1 " + (Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET) );
  969. renderer = cam;
  970. //if(MB_Animator) MB_Animator.changeCam(renderer);
  971. // cam.command( "move " + bone.id() + " 0,1,0 0.1 0,-0.2,-8" );
  972. // cam.command( "look " + cameraTarget.id() + " 0,0,-1" );
  973. float roll = Math.random()-0.5;
  974. cam.command( "move " + bone.id() + " 0,"+(Math.random())+",0 0.01 " + roll*-3.0 + ",-0.2," + (-3-5*Math.random()) );
  975. cam.command( "look " + cameraTarget.id() + " 0,0,-1 " + roll*0.6 + ",0,-1" );
  976. cam.command( "roll " + roll );
  977. cam.command( "zoom " + (20.0+70.0*Math.random()) +" 5" );
  978. }
  979. cameraMode = CAMMODE_INVCH;
  980. }
  981.  
  982. public void changeCamFree()
  983. {
  984. //'freestyle' camera for debug
  985. makeCamExternal();
  986. player.controller.command( "leave " + player.car.id() );
  987. player.controller.command( "controllable " + cam.id() );
  988. player.controller.activateState( 5, 1 );
  989. cameraMode = CAMMODE_FREE;
  990. }
  991.  
  992. public void enablePicInPic()
  993. {
  994. //debug test:
  995. // vport2 = new Viewport( 12, 0.1, 0.1, 0.3, 0.3 );
  996. vport2 = new Viewport( 12, 0.99, 0.01, 0.3, 4.0/3.0, -1.0, 0.0 );
  997. vport2.activate( Viewport.RENDERFLAG_CLEARDEPTH | Viewport.RENDERFLAG_CLEARTARGET );
  998. GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  999. cameraTarget.command( "render " + vport2.id() +" "+ con.id() +" "+ cameraNum);
  1000. // renderer = cameraTarget;
  1001. }
  1002.  
  1003. public void changeCamNone()
  1004. {
  1005. if (renderer)
  1006. {
  1007. renderer.command( "hide " + osd.getViewport().id());
  1008. renderer = null;
  1009. }
  1010.  
  1011. if( cameraMode == CAMMODE_INTERNAL && !cameraNum )
  1012. player.car.command( "filter 3 0" ); //running geart kifilterezzuk
  1013.  
  1014. /* if (cameraMode == CAMMODE_INTERNAL)
  1015. {
  1016. // GameRef con = new GameRef(cameraTarget.getInfo(GII_OWNER));
  1017. cameraTarget.command( "hide " + osd.getViewport().id());// +" "+ con.id());
  1018. }
  1019. */ if( cam )
  1020. {
  1021. cam.destroy();
  1022. if (cam_external == cam)
  1023. cam_external = null;
  1024. if (renderer == cam)
  1025. renderer = null;
  1026. cam = null;
  1027. }
  1028. }
  1029.  
  1030. public void refreshCamera()
  1031. {
  1032. if (cameraMode == CAMMODE_FOLLOW)
  1033. {
  1034. changeCamNone();
  1035. changeCamFollow();
  1036. }
  1037. else
  1038. if (cameraMode == CAMMODE_INTERNAL)
  1039. changeCamInternal();
  1040. else
  1041. if (cameraMode == CAMMODE_TV)
  1042. changeCamTV();
  1043. else
  1044. if (cameraMode == CAMMODE_CHASE)
  1045. changeCamChase();
  1046. else
  1047. if (cameraMode == CAMMODE_INVCH)
  1048. changeCamInvChase();
  1049. }
  1050.  
  1051. public void changeCamTarget( GameRef obj )
  1052. {
  1053. if (cameraTarget == obj)
  1054. return;
  1055. // if (cameraMode == CAMMODE_INTERNAL)
  1056. if (renderer && cameraTarget)
  1057. if (renderer.id() == cameraTarget.id())
  1058. {
  1059. renderer.command( "hide " + osd.getViewport().id());
  1060. renderer = null;
  1061. }
  1062. cameraTarget = obj;
  1063. refreshCamera();
  1064. }
  1065.  
  1066. public void changeCamTarget2( GameRef obj )
  1067. {
  1068. if (cameraTarget2 == obj)
  1069. return;
  1070. if (renderer && cameraTarget2)
  1071. if (renderer.id() == cameraTarget2.id())
  1072. {
  1073. renderer.command( "hide " + osd.getViewport().id());
  1074. renderer = null;
  1075. }
  1076. cameraTarget2 = obj;
  1077. if ((cameraMode == CAMMODE_CHASE)
  1078. || (cameraMode == CAMMODE_INVCH))
  1079. refreshCamera();
  1080. }
  1081.  
  1082. public Trigger addTrigger( Trigger t, Vector3 pos, RenderRef marker, String handler )
  1083. {
  1084. trigger.addElement(t);
  1085. addNotification( t.trigger, EVENT_TRIGGER_ON, EVENT_SAME, null, handler );
  1086. addNotification( t.trigger, EVENT_TRIGGER_OFF, EVENT_SAME, null, handler );
  1087.  
  1088. if( marker )
  1089. {
  1090. t.marker = nav.addMarker( marker, pos, 0 );
  1091. t.nav = nav;
  1092. }
  1093.  
  1094. return t;
  1095. }
  1096.  
  1097.  
  1098. public Trigger addTrigger( Vector3 pos, GameRef type, RenderRef marker, String handler, float r, String alias )
  1099. {
  1100. return addTrigger( new Trigger( map, null, pos, r, alias ), pos, marker, handler );
  1101. }
  1102.  
  1103. public void removeTrigger( Trigger t )
  1104. {
  1105. if( t )
  1106. {
  1107. remNotification( t.trigger, EVENT_TRIGGER_ON|EVENT_TRIGGER_OFF );
  1108. trigger.removeElement(t);
  1109. t.finalize();
  1110. }
  1111. }
  1112.  
  1113. //el/visszaveszi a kocsit a playertol
  1114. public void lockCar()
  1115. {
  1116. if (player.car)
  1117. {
  1118. player.car.setParent( map );
  1119. player.car.setMatrix( posStart, oriStart );
  1120. player.car.command( "reset" );
  1121. player.car.command( "reload" ); //Fuel and NOS
  1122. }
  1123. }
  1124.  
  1125. public void releaseCar()
  1126. {
  1127. if (player.car)
  1128. {
  1129. player.car.setParent( player );
  1130. player.car.command( "reset" );
  1131. }
  1132. }
  1133.  
  1134.  
  1135. public void setMessage( String str )
  1136. {
  1137. messages.changeText( str );
  1138. addTimer( 2, 0 );
  1139. ++msgtimers;
  1140. }
  1141.  
  1142. public void handleEvent( GameRef obj_ref, int event, int param )
  1143. {
  1144. //intet kellene visszadnia, jelezve, hogy feldolgozta-e az uzenetet!
  1145. if( event == EVENT_TIME )
  1146. {
  1147. if( param == 0 )
  1148. {
  1149. if( !--msgtimers )
  1150. messages.changeText( "" );
  1151. }
  1152. else
  1153. if( param == 2 )
  1154. {
  1155. addTimer( 1, 2 ); //one sec tick
  1156.  
  1157. if( GameLogic.timeout )
  1158. {
  1159. if( !--GameLogic.timeout )
  1160. GameLogic.changeActiveSection( parentState );
  1161. }
  1162. }
  1163. else
  1164. if( param == 3 )
  1165. {
  1166. if( cameraMode == CAMMODE_TV )
  1167. {
  1168. // if (player.car)
  1169. changeCamTV();
  1170. addTimer( 3, 3 ); //3mp-kent keresunk neki uj post
  1171. }
  1172. }
  1173. else
  1174. if( param == 4 )
  1175. {
  1176. if ( GameLogic.gameMode == GameLogic.GM_DEMO )
  1177. {//random camera changes
  1178. int changed = 0;
  1179. if (Math.random() > 0.3f)
  1180. {
  1181. int cam = 2.0*Math.random();
  1182. cameraMode = 2+cam%3;
  1183. changed++;
  1184. } else
  1185. {
  1186. int cam = 3.0*Math.random();
  1187. changeCamInternal(1+cam%3);
  1188. }
  1189.  
  1190. if (Math.random() > 0.7f)
  1191. if (cameraTarget2)
  1192. {
  1193. GameRef t2 = cameraTarget2;
  1194.  
  1195. if (renderer && cameraTarget)
  1196. if (renderer.id() == cameraTarget.id())
  1197. {
  1198. renderer.command( "hide " + osd.getViewport().id());
  1199. renderer = null;
  1200. }
  1201. cameraTarget2 = cameraTarget;
  1202. cameraTarget = t2;
  1203. changed++;
  1204. }
  1205. if (changed)
  1206. {
  1207. refreshCamera();
  1208. addTimer (5, 4 );
  1209. } else
  1210. {
  1211. addTimer (2, 4 );
  1212. }
  1213. }
  1214. }
  1215. }
  1216. }
  1217.  
  1218.  
  1219. public void handleEvent( GameRef obj_ref, int event, String param )
  1220. {
  1221. int tok = -1;
  1222.  
  1223. if( event == EVENT_CURSOR )
  1224. {
  1225. int ec = param.token( ++tok ).intValue();
  1226.  
  1227. int cursor_id = param.token( ++tok ).intValue();
  1228. if (ec == GameType.EC_RCLICK)
  1229. {
  1230. GameRef dest = new GameRef(param.token( ++tok ).intValue());
  1231. int cat = dest.getInfo(GameType.GII_CATEGORY);
  1232. if( cat == GIR_CAT_PART || cat == GIR_CAT_VEHICLE )
  1233. // cam.command( "look " + dest.id() + " 0,0,0" );
  1234. cam.command( "look " + dest.id() + " " + param.token( ++tok ) + "," + param.token( ++tok ) + "," + param.token( ++tok ) );
  1235. }
  1236. }
  1237. }
  1238.  
  1239.  
  1240. public void handleMessage( Message m )
  1241. {
  1242. if( m.type == Message.MT_EVENT )
  1243. {
  1244. int cmd=m.cmd;
  1245.  
  1246.  
  1247. if( cmd == CMD_LOOKBACK )
  1248. {
  1249. if(cameraMode == CAMMODE_FOLLOW)
  1250. {
  1251. if( ((Event)m).flags ) //press
  1252. {
  1253. //makeCamExternal();
  1254.  
  1255. Vector3 v = new Vector3();
  1256. v.diff( cameraTarget.getPos(), cam.getPos() );
  1257. camDist = v.length();
  1258.  
  1259. Vector3 Dist = new Vector3( 0.0, 1.5, -camDist );// distance
  1260. Vector3 b = cameraTarget.getPos();
  1261. float CarOri = cameraTarget.getOri().y;
  1262.  
  1263. Dist.rotate( new Ypr( CarOri, 0.0, 0.0 ) ); // rotate Dist Vector
  1264. Dist.sub( new Vector3( -b.x, -b.y, -b.z) ); // Set Pivot of rotate
  1265.  
  1266. cam.command( "force 2.0 1.0 -1.0" ); //defaults are in config.java
  1267. cam.command( "simulate 0" );
  1268.  
  1269. ResourceRef bone = new ResourceRef( cameraTarget.getInfo(GameType.GII_BONE) );
  1270. cam.command( "move " + bone.id() + " 0,1.5,-" + camDist + " 0.001 0,-0.2, 0" );
  1271. cam.command( "look " + bone.id() + " 0,1.3,0" );
  1272.  
  1273. Dist.y += 1;
  1274. cam.setMatrix( Dist, new Ypr(CarOri+3.14, 0, 0) );
  1275. }
  1276. else
  1277. {
  1278. changeCamFollow();
  1279.  
  1280. Vector3 Dist = new Vector3( 0.0, 2.0, 0.9*camDist );// distance
  1281. Vector3 b = cameraTarget.getPos();
  1282. float CarOri = cameraTarget.getOri().y;
  1283.  
  1284. Dist.rotate( new Ypr( CarOri, 0.0, 0.0 ) ); // rotate Dist Vector
  1285. Dist.sub( new Vector3( -b.x, -b.y, -b.z) ); // Set Pivot of rotate
  1286.  
  1287. cam.setMatrix( Dist, new Ypr(CarOri, 0, 0) );
  1288. }
  1289. }
  1290. else
  1291. if(cameraMode == CAMMODE_INTERNAL)
  1292. {
  1293. if( ((Event)m).flags ) //press
  1294. {
  1295. IntCamNumber = cameraNum; //Member current camera number
  1296.  
  1297. changeCamInternal(5);
  1298. }
  1299. else //Relase
  1300. {
  1301. changeCamInternal(IntCamNumber); //Back to old camera
  1302. }
  1303. }
  1304. }
  1305. else
  1306. if( cmd == CMD_MIRROR )
  1307. {
  1308. MirrorStatus += 1;
  1309. if (MirrorStatus >= 2) MirrorStatus = 0;
  1310.  
  1311. Mirror(MirrorStatus);
  1312. }
  1313. else
  1314. if( cmd == CMD_MAP )
  1315. {
  1316. if( nav )
  1317. {
  1318. if( MapStatus == 1 ) // ON
  1319. {
  1320. osd.vp.resize( 0, 0, 1, 1 );
  1321. enableOsd(OsdStatus);
  1322. MapViewFrame.finalize();
  1323. GPS_Min_Zoom = MapZ1;
  1324. GPS_Max_Zoom = MapZ2;
  1325.  
  1326. MapStatus = 0;
  1327. }
  1328. else // OFF
  1329. {
  1330. OsdStatus = osdEnabled;
  1331. enableOsd(0);
  1332. MapViewFrame = MirrorOsd.createRectangle( 0.63, 0.63, 0.72, 0.72, -1, new ResourceRef( MW_Mod:0x0054r ) );
  1333. osd.vp.resize( 0.64, 0.64, 0.35, 0.35 );
  1334. nav.ViewMap();
  1335. MapZ1 = GPS_Min_Zoom;
  1336. MapZ2 = GPS_Max_Zoom;
  1337.  
  1338. GPS_Min_Zoom += 3;
  1339. GPS_Max_Zoom += 4.5;
  1340.  
  1341. MapStatus = 1;
  1342. }
  1343. }
  1344. }
  1345. else
  1346. if( cmd >= CMD_SUSP_FL && cmd <= CMD_SUSP_MODE ) // All suspension buttons
  1347. {
  1348. if( player.car )
  1349. {
  1350. if( player.car.chassis )
  1351. {
  1352. //setMessage( cmd - 40 ); \\Text for bebuging
  1353.  
  1354. if( ((Event)m).flags ) //press
  1355. player.car.chassis.Hsuspension( 1, cmd - 40 );
  1356. else //release
  1357. player.car.chassis.Hsuspension( 0, cmd - 40 );
  1358. }
  1359. }
  1360. }
  1361. else
  1362. if( cmd == CMD_POSITION )
  1363. {
  1364. if ( System.timeWarp(-1.0) > 0.0 )
  1365. {
  1366. {
  1367. Vector3 CarVector = player.car.getPos();
  1368. TimeText.changeText( "Pos: X: " + CarVector.x + ", Y: " + CarVector.y + ", Z: " + CarVector.z );
  1369. Ypr CarYpr = player.car.getOri();
  1370. TimeText2.changeText( "Car Rotation: Y: " + CarYpr.y + ", P: " + CarYpr.p + ", R: " + CarYpr.r );
  1371. }
  1372. System.timeWarp(0.0);
  1373. }
  1374. else
  1375. {
  1376. {
  1377. Vector3 CarVector = player.car.getPos();
  1378. TimeText.changeText( " " );
  1379. Ypr CarYpr = player.car.getOri();
  1380. TimeText2.changeText( " ");
  1381. }
  1382. System.timeWarp( 1.0 );
  1383. }
  1384. }
  1385. else
  1386. if( cmd == CMD_CRUISECONTROL )
  1387. {
  1388. int newCruise = 1-player.car.getCruiseControl();
  1389. player.car.setCruiseControl( newCruise );
  1390. if( newCruise )
  1391. {
  1392. setMessage( "Cruise control on" );
  1393.  
  1394.  
  1395. }
  1396. else
  1397. {
  1398. setMessage( "Cruise control off" );
  1399.  
  1400. }
  1401. }
  1402. else
  1403. if( cmd == CMD_CAMMOVE )
  1404. {
  1405. if( ((Event)m).flags )
  1406. { //press
  1407. player.controller.user_Add( Input.AXIS_LOOK_UPDOWN, ControlSet.MOUSE, 1, -1.0f, 1.0f, -1.0f, 1.0f);
  1408. player.controller.user_Add( Input.AXIS_LOOK_LEFTRIGHT, ControlSet.MOUSE, 0, -1.0f, 1.0f, -1.0f, 1.0f);
  1409. }
  1410. else
  1411. { //release
  1412. player.controller.user_Del( Input.AXIS_LOOK_UPDOWN, ControlSet.MOUSE, 1 );
  1413. player.controller.user_Del( Input.AXIS_LOOK_LEFTRIGHT, ControlSet.MOUSE, 0 );
  1414. }
  1415. } else
  1416.  
  1417. if( cmd == CMD_CHANGECAM_TV )
  1418. {
  1419. // if( cameraMode != CAMMODE_TV )
  1420. // {
  1421. changeCamTV();
  1422. // }
  1423. } else
  1424. if( cmd == CMD_CHANGECAM_INT )
  1425. {
  1426. changeCamInternal();
  1427. } else
  1428. if( cmd == CMD_CHANGECAM_EXT )
  1429. {
  1430. if (cameraMode != CAMMODE_FOLLOW)
  1431. {
  1432. changeCamFollow();
  1433. }
  1434. } else
  1435. if( cmd == CMD_CHANGECAM_CHASE )
  1436. {
  1437. changeCamChase();
  1438. } else
  1439. if( cmd == CMD_CHANGECAM_INVCH )
  1440. {
  1441. changeCamInvChase();
  1442. } else
  1443. if( cmd == CMD_CHANGECAM_FREE )
  1444. {
  1445. if (cameraMode != CAMMODE_FOLLOW)
  1446. changeCamFollow();
  1447.  
  1448. changeCamFree();
  1449. // enablePicInPic();
  1450. } else
  1451. if( cmd == CMD_CHANGECAMTARGET )
  1452. {
  1453. if (player.car)
  1454. {
  1455. int old_time = System.timeWarp(-1);
  1456. System.timeWarp(0.0); // Pause
  1457.  
  1458. Vector3 CarPos = new Vector3 (player.car.getPos());
  1459. Ypr CarYpr = new Ypr (player.car.getOri());
  1460. player.render.destroy(); // Driver destroy
  1461.  
  1462. if( nav )
  1463. nav.remMarker( mPlayer );
  1464.  
  1465. if (GetCarStatus == 0)
  1466. {
  1467. releaseCar();
  1468. player.carlot.lockPlayerCar();
  1469. player.carlot.saveCar( player.carlot.curcar );
  1470. player.carlot.flushCars();
  1471.  
  1472. GetCarStatus = 1;
  1473. }
  1474. else
  1475. {
  1476. player.car.destroy();
  1477. player.car = null;
  1478. }
  1479.  
  1480. VehicleDescriptor nee = GameLogic.getVehicleDescriptor( VehicleType.VS_DEMO );
  1481. player.car = new Vehicle( player, nee.id, nee.colorIndex, 1+Math.random(), 1+Math.random(), 1, 1 );
  1482.  
  1483. player.car.setParent( map );
  1484. player.controller.command( "controllable " + player.car.id() );
  1485. player.car.setMatrix( CarPos, new Ypr(CarYpr.y, 0.0, 0.0) );
  1486.  
  1487. player.render = new RenderRef( map, player.driverID, "player" );
  1488. player.controller.command( "renderinstance " + player.render.id() );
  1489.  
  1490. player.car.setDefaultTransmission();
  1491. player.car.setDefaultSteeringHelp();
  1492.  
  1493. //lastCamPos = new Vector3( 0, 3, 6);
  1494. //lastCamPos.add( player.car.getPos() );
  1495. changeCamTarget(player.car);
  1496. changeCamFollow();// cameraPos );
  1497.  
  1498. map.command( "obs_add " + player.car.id() );
  1499.  
  1500. player.car.command( "reload");
  1501. System.timeWarp( old_time );
  1502. player.car.wakeUp();
  1503.  
  1504. if (nav)
  1505. mPlayer = nav.addMarker( player );
  1506. //Color_Number = Math.random() * GameLogic.CARCOLORS.length;
  1507. //player.car.command( "texture " + GameLogic.CARCOLORS[Color_Number] + " 1" );
  1508. }
  1509. }
  1510. else
  1511. if( cmd == CMD_OSDONOFF )
  1512. {
  1513. osdEnabled = 1-osdEnabled;
  1514. enableOsd( osdEnabled );
  1515. if (MirrorStatus == 1)
  1516. Mirror( osdEnabled );
  1517. }
  1518. else
  1519. if( cmd == CMD_CAMROTATE )
  1520. {
  1521. if( camRotate )
  1522. {
  1523. cam.command( "angle 0 0" ); //0.7853 = (2*pi)/8.0
  1524. }
  1525. else
  1526. {
  1527. cam.command( "angle 0 8.0 0.7853" ); //0.7853 = (2*pi)/8.0
  1528. }
  1529.  
  1530. camRotate = 1-camRotate;
  1531. }
  1532. /*else
  1533. if( cmd == CMD_FILTER )
  1534. {
  1535. if (1)
  1536. {
  1537. Frontend.show( new ResourceRef(sl:0x0003r) ); // Background image
  1538. }
  1539. else
  1540. {
  1541. Frontend.hide();
  1542. }
  1543. }*/
  1544. else
  1545. if( cmd == CMD_TILT7 )
  1546. {
  1547. if( camTilt )
  1548. {
  1549. cam.command( "roll " + (Math.random()*-0.5) );
  1550. }
  1551. else
  1552. {
  1553. cam.command( "roll " + (Math.random()*0.5) );
  1554. }
  1555. camTilt = 1-camTilt;
  1556. }
  1557. else
  1558. if( cmd == CMD_TILT8 )
  1559. {
  1560. if ( camTilt < 1.5735 )
  1561. camTilt += 0.03496 ; // 3.147 = 180°
  1562. cam.command( "roll " + camTilt );
  1563. }
  1564. else
  1565. if( cmd == CMD_TILT9 )
  1566. {
  1567. if ( camTilt > -1.5735 )
  1568. camTilt -= 0.03496 ; // 3.147 = 180°
  1569. cam.command( "roll " + camTilt );
  1570. }
  1571. else
  1572. if( cmd == CMD_TILT0 )
  1573. {
  1574. camTilt = 0 ; // 3.147 = 180°
  1575. cam.command( "roll " + camTilt );
  1576. }
  1577. else
  1578. if( cmd == CMD_LIGHTSONOFF )
  1579. {
  1580. GameLogic.setTime( GameLogic.getTime() + 12*3600 );
  1581. if( GameLogic.getTime() >= 24*3600 )
  1582. {
  1583. GameLogic.setTime( GameLogic.getTime() - 24*3600 );
  1584. }
  1585. }
  1586. else
  1587. if( cmd == CMD_CHANGETIME )
  1588. {
  1589. GameLogic.spendTime( 3600 );
  1590. super.refresh( GameLogic.getTime() );
  1591. refreshCamera();
  1592. }
  1593. else
  1594. if( cmd == CMD_NAVONOFF )
  1595. {
  1596. navEnabled = 1-navEnabled;
  1597. enableNav( navEnabled );
  1598. }
  1599. else
  1600. if( cmd == CMD_QUICKREPAIR )
  1601. {
  1602. //GameLogic.spendTime( 1*3600 );
  1603. //super.refresh( GameLogic.getTime() );
  1604. //renderer.command( "hide " + osd.getViewport().id());
  1605. //refreshCamera();
  1606.  
  1607. Ypr CarYpr = new Ypr (player.car.getOri());
  1608.  
  1609. if (CarYpr.r > 1.3 || CarYpr.r < -1.3 || CarYpr.p > 1.3 || CarYpr.p < -1.3)
  1610. {
  1611. Vector3 CarPos = new Vector3 (player.car.getPos());
  1612. player.car.setMatrix( CarPos, new Ypr(CarYpr.y, 0.0, 0.0) );
  1613. player.car.command( "idle");
  1614. player.car.wakeUp();
  1615. }
  1616.  
  1617. player.car.repair();
  1618. player.car.command( "reload" );
  1619. }
  1620. else
  1621. if( cmd == CMD_SIMPAUSE )
  1622. {
  1623. TimeTextStatus = 1; TimeTextWait = System.currentTime()+2;
  1624.  
  1625. if ( System.timeWarp(-1.0) > 0.0 )
  1626. {
  1627. System.timeWarp(0.0);
  1628. cam.command( "simulate 1" );
  1629. TimeText.changeText( "Time: Pause" );
  1630. }
  1631. else
  1632. {
  1633. cam.command( "simulate 0" );
  1634. TimeText.changeText( "Time: Normal" );
  1635. System.timeWarp( 1.0 );
  1636. if( camRotate )
  1637. cam.command( "angle 0 10.0 0.7853" ); //0.7853 = (2*pi)/8.0
  1638. }
  1639. }
  1640. else
  1641. if( cmd == CMD_SIMSPEEDINC )
  1642. {
  1643. TimeTextStatus = 1; TimeTextWait = System.currentTime()+2;
  1644.  
  1645. float t = 2.0*System.timeWarp(-1.0);
  1646. if( t < 8.0 )
  1647. {
  1648. if( t == 0.0 )
  1649. t = 1.0/512;
  1650. System.timeWarp( t );
  1651. }
  1652.  
  1653. if( t == 1.0 )
  1654. {
  1655. cam.command( "simulate 0" );
  1656. TimeText.changeText( "Time: Normal" );
  1657. }
  1658. else
  1659. if( t > 1.0 )
  1660. {
  1661. cam.command( "simulate 0" );
  1662. TimeText.changeText( "Time: x" + System.timeWarp(-1.0) );
  1663. }
  1664. else
  1665. {
  1666. cam.command( "simulate 1" );
  1667. TimeText.changeText( "Time: x" + System.timeWarp(-1.0) );
  1668. }
  1669.  
  1670. if( camRotate )
  1671. cam.command( "angle 0 10.0 0.7853" ); //0.7853 = (2*pi)/8.0
  1672. }
  1673. else
  1674. if( cmd == CMD_SIMSPEEDDEC )
  1675. {
  1676. TimeTextStatus = 1; TimeTextWait = System.currentTime()+2;
  1677.  
  1678. float t = 0.5*System.timeWarp(-1.0);
  1679. if (t < 1.0/512)
  1680. t = 0.0;
  1681. System.timeWarp(t);
  1682.  
  1683. if( t == 0)
  1684. {
  1685. TimeText.changeText( "Time: Pause" );
  1686. }
  1687. else
  1688. if( t == 1.0 )
  1689. {
  1690. cam.command( "simulate 0" );
  1691. TimeText.changeText( "Time: Normal" );
  1692. }
  1693. else
  1694. if( t > 1.0 )
  1695. {
  1696. cam.command( "simulate 0" );
  1697. TimeText.changeText( "Time: x" + System.timeWarp(-1.0) );
  1698. }
  1699. else
  1700. {
  1701. cam.command( "simulate 1" );
  1702. TimeText.changeText( "Time: x" + System.timeWarp(-1.0) );
  1703. }
  1704.  
  1705. if( camRotate )
  1706. cam.command( "angle 0 10.0 0.7853" ); //0.7853 = (2*pi)/8.0
  1707. }
  1708. else
  1709. if( cmd == CMD_INGAMEMENU )
  1710. {
  1711. if( mc_active )
  1712. osdCommand( CMD_MECHANIC );
  1713. else
  1714. if( pt_active )
  1715. osdCommand( CMD_PAINT );
  1716. else
  1717. {
  1718. if( im_active )
  1719. {
  1720. ingameMenu.hide();
  1721.  
  1722. //hatha valtozott az ingamemenuben!!
  1723. player.car.setDefaultTransmission();
  1724. player.car.setDefaultSteeringHelp();
  1725. player.car.setDefaultASR();
  1726. player.car.setDefaultABS();
  1727.  
  1728. //hatha valtozott a gpsmode?
  1729. if( nav )
  1730. nav.changeMode( Config.gpsMode );
  1731.  
  1732.  
  1733. //System.timeWarp(1.0);
  1734.  
  1735. if( ingameMenu.reqTrackExit )
  1736. {
  1737. int spec;
  1738.  
  1739. if( this instanceof ROCTrack )
  1740. {
  1741. if( !this.testMode )
  1742. {
  1743. spec = 1;
  1744. }
  1745. }
  1746.  
  1747. if( spec )
  1748. this.giveUpRace();
  1749. else
  1750. GameLogic.changeActiveSection( parentState );
  1751. }
  1752. }
  1753. else
  1754. {
  1755. //System.timeWarp(0.0);
  1756. ingameMenu.show();
  1757. if( cam && cam.id() )
  1758. ingameMenu.setActiveCamera( cam );
  1759. }
  1760.  
  1761. im_active=1-im_active;
  1762. }
  1763. }
  1764. else
  1765. if( cmd == CMD_EXIT )
  1766. {
  1767. if( mc_active )
  1768. osdCommand( CMD_MECHANIC );
  1769.  
  1770. if( pt_active )
  1771. osdCommand( CMD_PAINT );
  1772.  
  1773. if( im_active )
  1774. osdCommand( CMD_INGAMEMENU );
  1775.  
  1776. GameLogic.changeActiveSection( parentState );
  1777. }
  1778. else
  1779. if( cmd == CMD_REPAIR )
  1780. {
  1781. if( RepairStatus == 0 )
  1782. {
  1783. enableOsd(0);
  1784. mechanic.filterInventory( 0,0,0 );
  1785. mechanic.show();
  1786. mechanic.mode = 0;
  1787. cam.command( "look " + player.car.id() + " 0,0,0 0,0,0 0.2" );
  1788. cam.command( "move " + player.car.id() + " 0,0,0 3.5" );
  1789. cam.command( "dist 1.0 10.0");
  1790. cam.command( "smooth 0.05 0.5");
  1791. cam.command( "simulate 1" );
  1792. Input.cursor.addHandler(this); //kivancsiak vagyunk ra, mit csinal az eger
  1793. RepairStatus = 1;
  1794. }
  1795. else
  1796. if( RepairStatus == 1 )
  1797. {
  1798. mechanic.mode = 1;
  1799. Input.cursor.setPointer( Frontend.pointers, "B");
  1800.  
  1801. RepairStatus = 2;
  1802. }
  1803. else
  1804. if( RepairStatus == 2 )
  1805. {
  1806. mechanic.hide();
  1807. painter.show();
  1808. Input.cursor.setPointer( Frontend.pointers, "D");
  1809.  
  1810. RepairStatus = 3;
  1811. }
  1812. else
  1813. if( RepairStatus == 3)
  1814. {
  1815. RepairStatus = 0;
  1816.  
  1817. mechanic.hide();
  1818. painter.hide();
  1819.  
  1820. player.controller.command( "camera" + cam.id() );
  1821. painter.hide();
  1822. enableOsd(1);
  1823. }
  1824. }
  1825. else
  1826. if( cmd == CMD_MECHANIC )
  1827. {
  1828. if( mc_active )
  1829. {
  1830. cam.command( "dist 2.5 10.0");
  1831. cam.command( "smooth 0.5 0.5");
  1832. cam.command( "force 1.6 0.4 -0.4" );
  1833. cam.command( "torque 0.05" );
  1834. player.controller.command( "camera" + cam.id() );
  1835.  
  1836. Input.cursor.remHandler(this); //kivancsiak vagyunk ra, mit csinal az eger
  1837. player.car.command( "start" ); //release
  1838. mechanic.hide();
  1839. mechanic.filterInventory( 1,1,1 );
  1840. enableOsd(1);
  1841. }
  1842. else
  1843. {
  1844. enableOsd(0);
  1845. mechanic.filterInventory( 0,0,0 );
  1846. mechanic.show();
  1847. cam.command( "look " + player.car.id() + " 0,0,0 0,0,0 0.2" );
  1848. cam.command( "move " + player.car.id() + " 0,0,0 3.5" );
  1849. cam.command( "dist 2.5 4.6");
  1850. cam.command( "smooth 0.05 0.5");
  1851. player.car.command( "stop" ); //grab
  1852. Input.cursor.addHandler(this); //kivancsiak vagyunk ra, mit csinal az eger
  1853. }
  1854.  
  1855. mc_active=1-mc_active;
  1856. }
  1857. else
  1858. if( cmd == CMD_PAINT )
  1859. {
  1860. if( pt_active )
  1861. {
  1862. cam.command( "dist 2.5 10.0");
  1863. cam.command( "smooth 0.5 0.5");
  1864. cam.command( "force 1.6 0.4 -0.4" );
  1865. cam.command( "torque 0.01" );
  1866. player.controller.command( "camera" + cam.id() );
  1867. player.car.command( "start" ); //release
  1868. painter.hide();
  1869. enableOsd(1);
  1870. }
  1871. else
  1872. {
  1873. enableOsd(0);
  1874.  
  1875. painter.show();
  1876. cam.command( "look " + player.car.id() + " 0,0,0 0,0,0 0.2" );
  1877. cam.command( "move " + player.car.id() + " 0,0,0 3.5" );
  1878. cam.command( "dist 2.5 4.6");
  1879. cam.command( "smooth 0.05 0.5");
  1880. player.car.command( "stop" ); //grab
  1881. }
  1882.  
  1883. pt_active=1-pt_active;
  1884. }
  1885.  
  1886. }
  1887. }
  1888.  
  1889. public void osdCommand( int cmd )
  1890. {
  1891. mp.putMessage( new Event( cmd ) );
  1892. }
  1893.  
  1894. public void enableOsd( int enable )
  1895. {
  1896. if( enable )
  1897. {
  1898. osdCounter++;
  1899. if( osdCounter == 1 ) // 0 -> 1
  1900. {
  1901. player.showOsd();
  1902. //osd.show(0); //csak screenshotozashoz!!
  1903. }
  1904. }
  1905. else
  1906. {
  1907. osdCounter--;
  1908. if( osdCounter == 0 ) // 1 -> 0
  1909. {
  1910. player.hideOsd();
  1911. //osd.hide(0); //csak screenshotozashoz!!
  1912. }
  1913. }
  1914. }
  1915.  
  1916. public void enableNav( int enable )
  1917. {
  1918. if( enable )
  1919. {
  1920. navCounter++;
  1921. if( navCounter == 1 ) // 0 -> 1
  1922. {
  1923. nav.show();
  1924. //osd.show(0); //csak screenshotozashoz!!
  1925. }
  1926. }
  1927. else
  1928. {
  1929. navCounter--;
  1930. if( navCounter == 0 ) // 1 -> 0
  1931. {
  1932. nav.hide();
  1933. //osd.hide(0); //csak screenshotozashoz!!
  1934. }
  1935. }
  1936. }
  1937. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement