Zobacz pojedynczy post  Temat: Unreal Tournament UEngine Preprocessor Commandlet 
Autor Wiadomość
Raven
Admin
Admin


PostWysłany: Sro Wrz 24, 2008 1:53 pm    Temat postu: Odpowiedz z cytatem

Jest to dodatek dla osób piszących w Unreal Script. Od preprocesora z C++ różni się nazwą dyrektyw. W założeniu ma on automatyzować pewne czynności. Oto przykład działania:

Zakładając, że mamy projekt REmitter.upc

<UT>/REmitter/REmitter.upc
Kod:
[project]
path=../REmitter/
debug=true
make=false
make_ini=make.ini
clean=true
output=classes
input=classes/preprocessor
printglobals=true

[globals]
__NUM_NATIVES__=1


oraz klasy

<UT>/REmitter/classes/preprocessor/REmitterBase.uc
Unreal Script:
  1. `process
  2. `include(classes/includes/default_header.uc,true)
  3. // Base class for emitter related actors.
  4. // Quaternion implementation originally written by UsAaR33.
  5. class REmitterBase extends Actor native;
  6.  
  7. struct Quat
  8. {
  9.         var() config float W, X, Y, Z;
  10. };
  11. //converts rotator to quaternion
  12. native`write(__NUM_NATIVES__==1?(2330):) static final function Quat RotationToQuat( rotator R, bool bHighPrecision);


<UT>/REmitter/classes/includes/default_header.uc
Unreal Script:
  1. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2. // Copyright 2005-2008 Dead Cow Studios. All Rights Reserved.
  3. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4. // Coder: Raven
  5. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  6. // Last revision: __DATE__
  7. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  8.  


Uruchamiasz polecenie ucc:

Kod:
ucc uengineppc.parse project=../REmitter/REmitter.upc



1. Preprocesor wykrywa dyrektywę `process. Dzięki temu program wie, że ma przeanalizować aktualnie otwarty plik
2. Preprocesor wykrywa dyrektywę `include. Pierwszy parametr określa lokalizację pliku do załączenia, drugi czy załączany plik ma być analizowany.
3. Preprocesor wykrywa makro __DATE__ i aktualna data jest wstawiana na jego miejsce
4. Preprocesor wykrywa dyrektywę `write. Ponieważ wyrażenie jest spełnione (__NUM_NATIVES__ jest równe 1) pierwsza wartość po ? - (2330) - jest wstawiona w miejscu dyrektywy

plik wyjściowy będzie wyglądał następująco:

<UT>REmitter/classes/REmitterBase.uc
Unreal Script:
  1. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2. // Copyright 2005-2008 Dead Cow Studios. All Rights Reserved.
  3. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4. // Coder: Raven
  5. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  6. // Last revision: 21-9-2008 20:1
  7. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  8. // Base class for emitter related actors.
  9. // Quaternion implementation originally written by UsAaR33.
  10. class REmitterBase extends Actor native;
  11.  
  12. struct Quat
  13. {
  14.         var() config float W, X, Y, Z;
  15. };
  16. //converts rotator to quaternion
  17. native(2330) static final function Quat RotationToQuat( rotator R, bool bHighPrecision);

_________________

personal wiki
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Numer GG Tlen Numer ICQ

Powered by phpBB © 2001,2002 phpBB Group