67 // HHHandlers.inc |
67 // HHHandlers.inc |
68 // SinTable.inc |
68 // SinTable.inc |
69 // proto.inc |
69 // proto.inc |
70 |
70 |
71 {$IFDEF HWLIBRARY} |
71 {$IFDEF HWLIBRARY} |
72 type arrayofpchar = array[0..5] of PChar; |
72 type arrayofpchar = array[0..7] of PChar; |
73 procedure DoTimer(Lag: LongInt); |
73 |
74 procedure OnDestroy; |
|
75 procedure MainLoop; |
|
76 procedure ShowMainWindow; |
|
77 procedure Game(gameArgs: arrayofpchar); cdecl; export; |
|
78 procedure initEverything; |
74 procedure initEverything; |
79 procedure freeEverything; |
75 procedure freeEverything; |
80 |
76 |
81 implementation |
77 implementation |
82 |
|
83 {$ELSE} |
78 {$ELSE} |
84 procedure OnDestroy; forward; |
79 procedure OnDestroy; forward; |
85 procedure freeEverything; forward; |
80 procedure freeEverything; forward; |
86 {$ENDIF} |
81 {$ENDIF} |
87 |
82 |
252 val(gameArgs[1], ipcPort); |
243 val(gameArgs[1], ipcPort); |
253 isSoundEnabled:= gameArgs[2] = '1'; |
244 isSoundEnabled:= gameArgs[2] = '1'; |
254 isMusicEnabled:= gameArgs[3] = '1'; |
245 isMusicEnabled:= gameArgs[3] = '1'; |
255 cLocaleFName:= gameArgs[4]; |
246 cLocaleFName:= gameArgs[4]; |
256 cAltDamage:= gameArgs[5] = '1'; |
247 cAltDamage:= gameArgs[5] = '1'; |
|
248 val(gameArgs[6], cScreenHeight); |
|
249 val(gameArgs[7], cScreenWidth); |
|
250 cInitHeight:= cScreenHeight; |
|
251 cInitWidth:= cScreenWidth; |
257 {$ENDIF} |
252 {$ENDIF} |
258 |
253 |
259 for p:= Succ(Low(TPathType)) to High(TPathType) do |
254 for p:= Succ(Low(TPathType)) to High(TPathType) do |
260 if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p]; |
255 if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p]; |
261 |
256 |
355 begin |
350 begin |
356 free_uWorld(); |
351 free_uWorld(); |
357 free_uVisualGears(); //stub |
352 free_uVisualGears(); //stub |
358 free_uTeams(); |
353 free_uTeams(); |
359 free_uStore(); |
354 free_uStore(); |
360 free_uStats(); //stub |
355 free_uStats(); //stub |
361 free_uSound(); //stub |
356 free_uSound(); //stub |
362 //uSHA does not need to be freed |
357 //uSHA does not need to be freed |
363 free_uRandom(); //stub |
358 free_uRandom(); //stub |
364 //uLocale does not need to be freed |
359 //uLocale does not need to be freed |
365 //uLandTemplates does not need to be freed |
360 //uLandTemplates does not need to be freed |
366 //uLandTexture does not need to be freed |
361 //uLandTexture does not need to be freed |
367 //uLandObjects does not need to be freed |
362 //uLandObjects does not need to be freed |
368 //uLandGraphics does not need to be freed |
363 //uLandGraphics does not need to be freed |
369 free_uLand(); |
364 free_uLand(); |
370 free_uKeys(); //stub |
365 free_uKeys(); //stub |
371 free_uIO(); |
366 free_uIO(); |
372 free_uGears(); |
367 free_uGears(); |
373 //uGame does not need to be freed |
368 //uGame does not need to be freed |
374 //uFloat does not need to be freed |
369 //uFloat does not need to be freed |
375 free_uCollisions(); |
370 free_uCollisions(); |
376 free_uChat(); |
371 free_uChat(); |
377 free_uAmmos(); |
372 free_uAmmos(); |
378 free_uAIMisc(); //stub |
373 free_uAIMisc(); //stub |
379 //uAIAmmoTests does not need to be freed |
374 //uAIAmmoTests does not need to be freed |
380 //uAIActions does not need to be freed |
375 //uAIActions does not need to be freed |
381 free_uAI(); //stub |
376 free_uAI(); //stub |
382 |
377 |
383 free_uConsole(); |
378 free_uConsole(); |
384 free_uMisc(); |
379 free_uMisc(); |
385 free_uConsts(); //stub |
380 free_uConsts(); //stub |
386 free_uScript(); |
381 free_uScript(); |
387 end; |
382 end; |
388 |
383 |
389 {$IFNDEF HWLIBRARY} |
|
390 ///////////////////////// |
384 ///////////////////////// |
391 procedure GenLandPreview; |
385 procedure GenLandPreview; |
392 var Preview: TPreview; |
386 var Preview: TPreview; |
393 h: byte; |
387 h: byte; |
394 begin |
388 begin |
403 SendIPCRaw(@h, sizeof(h)); |
397 SendIPCRaw(@h, sizeof(h)); |
404 WriteLnToConsole('Preview sent, disconnect'); |
398 WriteLnToConsole('Preview sent, disconnect'); |
405 CloseIPC(); |
399 CloseIPC(); |
406 end; |
400 end; |
407 |
401 |
|
402 {$IFNDEF HWLIBRARY} |
408 //////////////////////////////// |
403 //////////////////////////////// |
409 procedure Resize(w, h: LongInt); |
404 procedure Resize(w, h: LongInt); |
410 begin |
405 begin |
411 cScreenWidth:= w; |
406 cScreenWidth:= w; |
412 cScreenHeight:= h; |
407 cScreenHeight:= h; |
559 |
554 |
560 {$IFDEF DEBUGFILE} |
555 {$IFDEF DEBUGFILE} |
561 AddFileLog('Prefix: "' + PathPrefix +'"'); |
556 AddFileLog('Prefix: "' + PathPrefix +'"'); |
562 for i:= 0 to ParamCount do |
557 for i:= 0 to ParamCount do |
563 AddFileLog(inttostr(i) + ': ' + ParamStr(i)); |
558 AddFileLog(inttostr(i) + ': ' + ParamStr(i)); |
564 {$IFDEF IPHONEOS} |
559 {$ENDIF} |
565 WriteLnToConsole('Saving debug file at: ' + IPH_getDocumentsPath()); |
560 end; |
566 {$ENDIF} |
561 |
567 {$ENDIF} |
|
568 end; |
|
569 //////////////////////////////////////////////////////////////////////////////// |
562 //////////////////////////////////////////////////////////////////////////////// |
570 /////////////////////////////// m a i n //////////////////////////////////////// |
563 /////////////////////////////// m a i n //////////////////////////////////////// |
571 //////////////////////////////////////////////////////////////////////////////// |
564 //////////////////////////////////////////////////////////////////////////////// |
572 |
|
573 begin |
565 begin |
574 initEverything(); |
566 initEverything(); |
575 WriteLnToConsole('Hedgewars ' + cVersionString + ' engine (network protocol: ' + inttostr(cNetProtoVersion) + ')'); |
567 WriteLnToConsole('Hedgewars ' + cVersionString + ' engine (network protocol: ' + inttostr(cNetProtoVersion) + ')'); |
576 |
568 |
577 GetParams(); |
569 GetParams(); |