Merged revision(s) 491 from branches/SFML2:

Uniformized paranthese padding with AStyle, use AStyle 2.04

........
Merged revision(s) 489 from branches/SFML2:
Removed all empty translations to avoid confusion
Save language as string to avoid problems when languages.lst changes

........
Merged revision(s) 488 from branches/SFML2:
New features:
- Translatability of statistics at end of race
- Adapt GUI particle count to screen size

Fixes:
- Remember selected race in GUI
- Fixed crash in Debug mode when loading course without any trees
- Simplified collision detection

........
Merged revision(s) 487 from branches/SFML2:
Refactorizations:
- Check for gl_error automatically (in states)
- Cleaned up some unnecessary includes
- Removed some index maps that offer no performance gain
- Load credit text on demand and unload it when leaving credits menu
- Replaced loadIdentity+multMatrix by loadMatrix

........

git-svn-id: https://svn.code.sf.net/p/extremetuxracer/code/trunk@516 0420edf4-82e4-42fc-9478-35b55e6d67a3
master
pkeus 2014-07-11 07:58:50 +00:00
parent fc2a8e62e3
commit df4a95d199
93 changed files with 4154 additions and 4813 deletions

View File

@ -4,4 +4,5 @@
--indent=tab
--indent-switches
--pad-header
--unpad-paren
--keep-one-line-blocks

View File

@ -3,20 +3,9 @@ pkgdatadir = $(datadir)/$(PACKAGE)/translations
pkgdata_DATA = \
languages.lst \
eu_ES.lst \
de_DE.lst \
es_ES.lst \
fr_FR.lst \
it_IT.lst \
nl_NL.lst \
nb_NO.lst \
nn_NO.lst \
pl_PL.lst \
pt_PT.lst \
ru_RU.lst \
ro_RO.lst \
sk_SK.lst \
fi_FI.lst \
sv_SE.lst
pl_PL.lst
EXTRA_DIST = $(pkgdata_DATA)

View File

@ -104,3 +104,11 @@
*[idx] 84 [engl] Fullscreen setting has changed, [trans] Damit die Vollbild-Einstellung geändert wird,
*[idx] 85 [engl] You need to restart the game [trans] muss das Spiel neugestartet werden.
*[idx] 86 [engl] Score [trans] Punkte
*[idx] 87 [engl] Herring [trans] Herringe
*[idx] 88 [engl] Time [trans] Zeit
*[idx] 89 [engl] Path length [trans] Streckenlänge
*[idx] 90 [engl] Average speed [trans] Durchschnittsgeschwindigkeit
*[idx] 91 [engl] Position [trans] Platz
*[idx] 92 [engl] in highscore list [trans] in der Punktelilste.

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,15 +1,4 @@
*[lang] eu_ES [language] Basque
*[lang] de_DE [language] Deutsch
*[lang] es_ES [language] Español
*[lang] fr_FR [language] français
*[lang] it_IT [language] Italian
*[lang] nl_NL [language] Nederlands
*[lang] nb_NO [language] Norsk (bokmål)
*[lang] nn_NO [language] Norsk (nynorsk)
*[lang] pl_PL [language] polski
*[lang] pt_PT [language] Português
*[lang] ru_RU [language] Русский
*[lang] ro_RO [language] românã
*[lang] sk_SK [language] Slovenčina
*[lang] fi_FI [language] Suomi
*[lang] sv_SE [language] Svenska

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,54 +0,0 @@
# Please, don't change the idx
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
*[idx] 2 [engl] Practice [trans]
*[idx] 3 [engl] Configuration [trans]
*[idx] 4 [engl] Credits [trans]
*[idx] 5 [engl] Quit [trans]
*[idx] 6 [engl] Select an event [trans]
*[idx] 7 [engl] Select a cup [trans]
*[idx] 8 [engl] Back [trans]
*[idx] 9 [engl] Continue [trans]
*[idx] 10 [engl] You cannot enter this cup yet
[trans]
*[idx] 11 [engl] Herring: [trans]
*[idx] 12 [engl] Time: [trans]
*[idx] 13 [engl] Race! [trans]
*[idx] 14 [engl] seconds [trans]
*[idx] 15 [engl] Ok [trans]
*[idx] 16 [engl] Congratulations! You won the cup!
[trans]
*[idx] 17 [engl] You have reached level [trans]
*[idx] 18 [engl] Sorry, you didn't advance [trans]
*[idx] 19 [engl] You don't have any lives left [trans]
*[idx] 20 [engl] Select a race [trans]
*[idx] 21 [engl] Failed, -1 Tuxlive [trans]
*[idx] 22 [engl] Success, +/- 0 Tuxlive [trans]
*[idx] 23 [engl] Success, +1 Tuxlive [trans]
*[idx] 24 [engl] Success, +2 Tuxlive [trans]
*[idx] 25 [engl] Race aborted [trans]
*[idx] 26 [engl] Score: [trans]
*[idx] 27 [engl] points [trans]
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
*[idx] 34 [engl] Sound volume: [trans]
*[idx] 35 [engl] Language: [trans]
*[idx] 36 [engl] Level of detail: [trans]
*[idx] 37 [engl] Contributed by: [trans]
*[idx] 38 [engl] Event: [trans]
*[idx] 39 [engl] Cup: [trans]
*[idx] 40 [engl] Race Over [trans]
*[idx] 41 [engl] For more configuration options, please edit the
[trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation.
[trans]

View File

@ -1,5 +1,4 @@
# Please, don't change the idx
# but you may change the order of the entries
*[idx] 0 [engl] PRESS ANY KEY TO START [trans]
*[idx] 1 [engl] Enter an event [trans]
@ -35,6 +34,7 @@
*[idx] 28 [engl] Cancel [trans]
*[idx] 29 [engl] Loading [trans]
*[idx] 30 [engl] Please wait... [trans]
*[idx] 31 [engl] Fullscreen: [trans]
*[idx] 32 [engl] Resolution: [trans]
*[idx] 33 [engl] Music volume: [trans]
@ -48,7 +48,6 @@
*[idx] 41 [engl] For more configuration options, please edit the [trans]
*[idx] 42 [engl] file 'options.lst' and read the documentation. [trans]
*[idx] 43 [engl] Help [trans]
*[idx] 44 [engl] 1, 2, 3 - change view mode [trans]
*[idx] 45 [engl] F - hide/show fps display [trans]
@ -64,3 +63,46 @@
*[idx] 55 [engl] CRSR Up - accelerate [trans]
*[idx] 56 [engl] CRSR down - brake [trans]
*[idx] 57 [engl] Keyboard Functions [trans]
*[idx] 65 [engl] Press any key to return to the main menu [trans]
*[idx] 58 [engl] Select your player name: [trans]
*[idx] 59 [engl] Select a character: [trans]
*[idx] 60 [engl] Enter [trans]
*[idx] 61 [engl] Register a new player [trans]
*[idx] 62 [engl] Highscore list [trans]
*[idx] 63 [engl] No entries for this race [trans]
*[idx] 64 [engl] Back [trans]
*[idx] 66 [engl] Enter a name for the new player and select an avatar: [trans]
*[idx] 67 [engl] Loading resources, [trans]
*[idx] 68 [engl] please wait [trans]
*[idx] 69 [engl] Mirror track: Off [trans]
*[idx] 70 [engl] Mirror track: On [trans]
*[idx] 71 [engl] Light: Sunny [trans]
*[idx] 72 [engl] Light: Cloudy [trans]
*[idx] 73 [engl] Light: Evening [trans]
*[idx] 74 [engl] Light: Night [trans]
*[idx] 75 [engl] Snow: No [trans]
*[idx] 76 [engl] Snow: A little [trans]
*[idx] 77 [engl] Snow: Some [trans]
*[idx] 78 [engl] Snow: A lot [trans]
*[idx] 79 [engl] Wind: No [trans]
*[idx] 80 [engl] Wind: Breeze [trans]
*[idx] 81 [engl] Wind: Strong [trans]
*[idx] 82 [engl] Wind: Blustery [trans]
*[idx] 83 [engl] Randomize settings [trans]
*[idx] 84 [engl] Score [trans]
*[idx] 85 [engl] Herring [trans]
*[idx] 86 [engl] Time [trans]
*[idx] 87 [engl] Path length [trans]
*[idx] 88 [engl] Average speed [trans]
*[idx] 89 [engl] Position [trans]
*[idx] 90 [engl] in highscore list [trans]

View File

@ -162,18 +162,14 @@ void Message (const string& msg) {
// file utils
// --------------------------------------------------------------------
bool FileExists (const char *filename) {
bool FileExists(const string& filename) {
struct stat stat_info;
if (stat (filename, &stat_info) != 0) {
if (stat(filename.c_str(), &stat_info) != 0) {
if (errno != ENOENT) Message("couldn't stat ", filename);
return false;
} else return true;
}
bool FileExists (const string& filename) {
return FileExists (filename.c_str());
}
bool FileExists(const string& dir, const string& filename) {
return FileExists(dir + SEP + filename);
}

View File

@ -95,7 +95,6 @@ void PrintQuaternion (const TQuaternion& q);
// file utils
// --------------------------------------------------------------------
bool FileExists (const char *filename);
bool FileExists(const string& filename);
bool FileExists(const string& dir, const string& filename);
bool DirExists(const char *dirname);

View File

@ -48,9 +48,6 @@ Then edit the below functions:
#include "gui.h"
#include "textures.h"
#include "font.h"
#include "translation.h"
#include "course.h"
#include "game_ctrl.h"
#include "winsys.h"
CGameConfig GameConfig;
@ -64,7 +61,6 @@ static TUpDown* sound_vol;
static TUpDown* detail_level;
static TWidget* textbuttons[2];
void SetConfig() {
if (mus_vol->GetValue() != param.music_volume ||
sound_vol->GetValue() != param.sound_volume ||
@ -92,7 +88,7 @@ void SetConfig () {
Music.SetVolume(param.music_volume);
param.sound_volume = sound_vol->GetValue();
param.perf_level = detail_level->GetValue();
Winsys.SetFonttype ();
FT.SetFontFromSettings();
if (param.language != language->GetValue()) {
param.language = language->GetValue();
Trans.LoadTranslations(param.language);
@ -188,8 +184,6 @@ void CGameConfig::Loop (double time_step) {
Music.Update();
check_gl_error();
Music.Update ();
ScopedRenderMode rm(GUI);
ClearRenderContext();
SetupGuiDisplay();

View File

@ -79,7 +79,7 @@ TCourse* CCourse::GetCourse(const string& dir) {
}
size_t CCourse::GetCourseIdx(const TCourse* course) const {
size_t idx = (course - &CourseList[0]) / sizeof(TCourse);
size_t idx = (course - &CourseList[0]);
if (idx >= CourseList.size())
return -1;
return idx;
@ -333,7 +333,8 @@ void CCourse::FreeObjectTextures () {
bool CCourse::LoadElevMap() {
CImage img;
if (!img.LoadPng (CourseDir.c_str(), "elev.png", true)) { Message ("unable to open elev.png");
if (!img.LoadPng(CourseDir.c_str(), "elev.png", true)) {
Message("unable to open elev.png");
return false;
}
@ -439,7 +440,8 @@ static void CalcRandomTrees (double baseheight, double basediam, double &height,
bool CCourse::LoadAndConvertObjectMap() {
CImage treeImg;
if (!treeImg.LoadPng (CourseDir.c_str(), "trees.png", true)) { Message ("unable to open trees.png");
if (!treeImg.LoadPng(CourseDir.c_str(), "trees.png", true)) {
Message("unable to open trees.png");
return false;
}
@ -606,7 +608,8 @@ bool CCourse::LoadTerrainTypes () {
bool CCourse::LoadTerrainMap() {
CImage terrImage;
if (!terrImage.LoadPng (CourseDir.c_str(), "terrain.png", true)) { Message ("unable to open terrain.png");
if (!terrImage.LoadPng(CourseDir.c_str(), "terrain.png", true)) {
Message("unable to open terrain.png");
return false;
}
if (nx != terrImage.nx || ny != terrImage.ny) {

View File

@ -73,24 +73,27 @@ struct TObjectType {
int poly;
};
struct TCollidable {
struct TObject {
TVector3d pt;
double height;
double diam;
size_t tree_type;
TCollidable(double x, double y, double z, double height_, double diam_, size_t type)
: pt(x, y, z), height(height_), diam(diam_), tree_type(type)
TObject(double x, double y, double z, double height_, double diam_)
: pt(x, y, z), height(height_), diam(diam_)
{}
};
struct TItem {
TVector3d pt;
double height;
double diam;
struct TCollidable : public TObject {
size_t tree_type;
TCollidable(double x, double y, double z, double height_, double diam_, size_t type)
: TObject(x, y, z, height_, diam_), tree_type(type)
{}
};
struct TItem : public TObject {
int collectable;
const TObjectType& type;
TItem(double x, double y, double z, double height_, double diam_, const TObjectType& type_)
: pt(x, y, z), height(height_), diam(diam_), collectable(type_.collectable), type(type_)
: TObject(x, y, z, height_, diam_), collectable(type_.collectable), type(type_)
{}
};

View File

@ -69,26 +69,23 @@ void DrawTrees() {
// -------------- trees ------------------------
TCollidable* treeLocs = &Course.CollArr[0];
size_t numTrees = Course.CollArr.size();
for (size_t i = 0; i< numTrees; i++) {
for (size_t i = 0; i< Course.CollArr.size(); i++) {
if (clip_course) {
if (ctrl->viewpos.z - treeLocs[i].pt.z > fwd_clip_limit) continue;
if (treeLocs[i].pt.z - ctrl->viewpos.z > bwd_clip_limit) continue;
if (ctrl->viewpos.z - Course.CollArr[i].pt.z > fwd_clip_limit) continue;
if (Course.CollArr[i].pt.z - ctrl->viewpos.z > bwd_clip_limit) continue;
}
if (treeLocs[i].tree_type != tree_type) {
tree_type = treeLocs[i].tree_type;
if (Course.CollArr[i].tree_type != tree_type) {
tree_type = Course.CollArr[i].tree_type;
object_types[tree_type].texture->Bind();
}
glPushMatrix();
glTranslate(treeLocs[i].pt);
glTranslate(Course.CollArr[i].pt);
if (param.perf_level > 1) glRotatef(1, 0, 1, 0);
float treeRadius = treeLocs[i].diam / 2.0;
float treeHeight = treeLocs[i].height;
float treeRadius = Course.CollArr[i].diam / 2.0;
float treeHeight = Course.CollArr[i].height;
glNormal3i(0, 0, 1);
static const GLshort tex[] = {
@ -127,32 +124,30 @@ void DrawTrees() {
}
// items -----------------------------
TItem* itemLocs = &Course.NocollArr[0];
size_t numItems = Course.NocollArr.size();
const TObjectType* item_type = NULL;
for (size_t i = 0; i< numItems; i++) {
if (itemLocs[i].collectable == 0 || itemLocs[i].type.drawable == false) continue;
for (size_t i = 0; i< Course.NocollArr.size(); i++) {
if (Course.NocollArr[i].collectable == 0 || Course.NocollArr[i].type.drawable == false) continue;
if (clip_course) {
if (ctrl->viewpos.z - itemLocs[i].pt.z > fwd_clip_limit) continue;
if (itemLocs[i].pt.z - ctrl->viewpos.z > bwd_clip_limit) continue;
if (ctrl->viewpos.z - Course.NocollArr[i].pt.z > fwd_clip_limit) continue;
if (Course.NocollArr[i].pt.z - ctrl->viewpos.z > bwd_clip_limit) continue;
}
if (&itemLocs[i].type != item_type) {
item_type = &itemLocs[i].type;
if (&Course.NocollArr[i].type != item_type) {
item_type = &Course.NocollArr[i].type;
item_type->texture->Bind();
}
glPushMatrix();
glTranslate(itemLocs[i].pt);
double itemRadius = itemLocs[i].diam / 2;
double itemHeight = itemLocs[i].height;
glTranslate(Course.NocollArr[i].pt);
double itemRadius = Course.NocollArr[i].diam / 2;
double itemHeight = Course.NocollArr[i].height;
TVector3d normal;
if (item_type->use_normal) {
normal = item_type->normal;
} else {
normal = ctrl->viewpos - itemLocs[i].pt;
normal = ctrl->viewpos - Course.NocollArr[i].pt;
normal.Norm();
}
glNormal3(normal);

View File

@ -133,11 +133,17 @@ void CCredits::Motion(int x, int y) {
}
void CCredits::Enter() {
LoadCreditList();
Music.Play(param.credits_music, -1);
y_offset = 0;
moving = true;
}
void CCredits::Exit() {
CreditList.clear();
}
void CCredits::Loop(double time_step) {
int ww = Winsys.resolution.width;
int hh = Winsys.resolution.height;

View File

@ -36,6 +36,7 @@ class CCredits : public State {
void DrawCreditsText(double time_step);
void Enter();
void Exit();
void Loop(double time_step);
void Keyb(unsigned int key, bool special, bool release, int x, int y);
void Mouse(int button, int state, int x, int y);

View File

@ -78,17 +78,17 @@ struct TGameData {
// course and race params
TPlayer* player;
TCharacter* character;
size_t start_player;
TCup* cup;
bool mirrorred;
TCharacter* character;
TRace* race; // Only valid if not in practice mode
TCourse* course;
bool mirrorred;
size_t location_id;
size_t light_id;
int snow_id;
int wind_id;
size_t theme_id;
TRace* race; // Only valid if not in practice mode
// race results (better in player.ctrl ?)
double time; // reached time

View File

@ -179,7 +179,6 @@ void CEvent::Loop (double timestep) {
int ww = Winsys.resolution.width;
int hh = Winsys.resolution.height;
check_gl_error();
ScopedRenderMode rm(GUI);
Music.Update();
ClearRenderContext();

View File

@ -117,7 +117,6 @@ void CEventSelect::Loop (double timestep) {
int hh = Winsys.resolution.height;
TColor col;
check_gl_error();
ScopedRenderMode rm(GUI);
Music.Update();
ClearRenderContext();

View File

@ -200,6 +200,13 @@ void CFont::SetFont (const string& fontname) {
else curr_fact = 1.0;
}
void CFont::SetFontFromSettings() {
if (param.use_papercut_font > 0)
SetFont("pc20");
else
SetFont("bold");
}
// -------------------- auto ------------------------------------------
int CFont::AutoSizeN(int rel_val) {

View File

@ -65,6 +65,7 @@ public:
void SetColor(const TColor& col) { curr_col = col; }
void SetSize(float size) { curr_size = size; }
void SetFont(const string& fontname);
void SetFontFromSettings();
// auto
int AutoSizeN(int rel_val); // rel_val = relative size, return: autosize

View File

@ -64,7 +64,7 @@ void LoadConfigFile () {
param.res_type = SPIntN(line, "res_type", 0);
param.framerate = SPIntN(line, "framerate", 60);
param.perf_level = SPIntN(line, "detail_level", 3);
param.language = SPIntN (line, "language", 0);
param.language = Trans.GetLangIdx(SPStrN(line, "language", "EN_en"));
param.sound_volume = SPIntN(line, "sound_volume", 100);
param.music_volume = SPIntN(line, "music_volume", 20);
@ -168,9 +168,9 @@ void SaveConfigFile () {
AddIntItem(liste, "detail_level", param.perf_level);
liste.AddLine();
AddComment (liste, "Language code [0...]");
AddComment (liste, "0 = English etc.");
AddIntItem (liste, "language", (int)param.language);
AddComment(liste, "Language code");
AddComment(liste, "en_GB = English etc.");
AddItem(liste, "language", Trans.languages[param.language].lang);
liste.AddLine();
AddComment(liste, "Sound volume [0...120]");
@ -282,7 +282,7 @@ void SaveConfigFile () {
// --------------------------------------------------------------------
void InitConfig (const char *arg0) {
void InitConfig() {
#if defined (OS_WIN32_MINGW) || defined (OS_WIN32_MSC)
// the progdir is always the current dir
param.config_dir = "config";
@ -309,7 +309,7 @@ void InitConfig (const char *arg0) {
struct passwd *pwent = getpwuid(getuid());
param.config_dir = pwent->pw_dir;
param.config_dir += SEP;
param.config_dir += CONFIG_DIR;
param.config_dir += ".etr";
// or: param.config_dir = param.prog_dir + SEP "config";
if (!DirExists(param.config_dir.c_str()))
mkdir(param.config_dir.c_str(), 0775);
@ -338,6 +338,8 @@ void InitConfig (const char *arg0) {
param.display_fps = false;
param.show_hud = true;
Trans.LoadLanguages();
if (FileExists(param.configfile)) {
LoadConfigFile();
} else {

View File

@ -19,9 +19,6 @@ GNU General Public License for more details.
#include "bh.h"
#define CONFIG_DIR ".etr"
#define PLAYER_FILE "players"
struct TParam {
// defined at runtime:
// string prog_dir;
@ -78,7 +75,7 @@ struct TParam {
TViewMode view_mode;
};
void InitConfig (const char *arg0);
void InitConfig();
void SaveConfigFile();
extern TParam param;

View File

@ -43,7 +43,7 @@ GNU General Public License for more details.
CGameOver GameOver;
static CKeyframe *final_frame;
static int highscore_pos = 999;
static int highscore_pos = MAX_SCORES;
void QuitGameOver() {
if (g_game.game_type == PRACTICING) {
@ -79,6 +79,8 @@ void GameOverMessage (const CControl *ctrl) {
FT.SetColor(colDBlue);
FT.DrawString(CENTER, topframe+30, Trans.Text(25));
} else {
int firstMarker = leftframe + 60;
int secondMarker = leftframe + 310;
DrawFrameX(leftframe, topframe, fwidth, 210, 4, backcol, framecol, 0.5);
if (param.use_papercut_font > 0) FT.SetSize(20);
@ -86,24 +88,24 @@ void GameOverMessage (const CControl *ctrl) {
if (g_game.race_result >= 0 || g_game.game_type != CUPRACING) FT.SetColor(colDBlue);
else FT.SetColor(colDRed);
string line = "Score: ";
FT.DrawString (leftframe+80, topframe+15, line);
string line = Trans.Text(86) + ": ";
FT.DrawString(firstMarker, topframe + 15, line);
line = Int_StrN(g_game.score);
line += " pts";
FT.DrawString (leftframe+240, topframe+15, line);
FT.DrawString(secondMarker, topframe + 15, line);
line = "Herring: ";
FT.DrawString (leftframe+80, topframe+40, line);
line = Trans.Text(87) + ": ";
FT.DrawString(firstMarker, topframe + 40, line);
line = Int_StrN(g_game.herring);
if (g_game.game_type == CUPRACING) {
line += " (";
line += Int_StrN(g_game.race->herrings.x);
line += ")";
}
FT.DrawString (leftframe+240, topframe+40, line);
FT.DrawString(secondMarker, topframe + 40, line);
line = "Time: ";
FT.DrawString (leftframe+80, topframe+65, line);
line = Trans.Text(88) + ": ";
FT.DrawString(firstMarker, topframe + 65, line);
line = Float_StrN(g_game.time, 2);
line += " s";
if (g_game.game_type == CUPRACING) {
@ -111,19 +113,19 @@ void GameOverMessage (const CControl *ctrl) {
line += Float_StrN(g_game.race->time.x, 2);
line += ")";
}
FT.DrawString (leftframe+240, topframe+65, line);
FT.DrawString(secondMarker, topframe + 65, line);
line = "Path length: ";
FT.DrawString (leftframe+80, topframe+90, line);
line = Trans.Text(89) + ": ";
FT.DrawString(firstMarker, topframe + 90, line);
line = Float_StrN(ctrl->way, 2);
line += " m";
FT.DrawString (leftframe+240, topframe+90, line);
FT.DrawString(secondMarker, topframe + 90, line);
line = "Average speed: ";
FT.DrawString (leftframe+80, topframe+115, line);
line = Trans.Text(90) + ": ";
FT.DrawString(firstMarker, topframe + 115, line);
line = Float_StrN(ctrl->way / g_game.time * 3.6, 2);
line += " km/h";
FT.DrawString (leftframe+240, topframe+115, line);
FT.DrawString(secondMarker, topframe + 115, line);
if (param.use_papercut_font > 0) FT.SetSize(28);
else FT.SetSize(22);
@ -143,10 +145,10 @@ void GameOverMessage (const CControl *ctrl) {
break;
}
} else {
if (highscore_pos < 5) {
line = "Position ";
if (highscore_pos < MAX_SCORES) {
line = Trans.Text(91) + ' ';
line += Int_StrN(highscore_pos + 1);
line += " in highscore list";
line += ' ' + Trans.Text(92);
FT.DrawString(CENTER, topframe+150, line);
}
}
@ -155,8 +157,6 @@ void GameOverMessage (const CControl *ctrl) {
// =========================================================================
void CGameOver::Enter() {
Sound.HaltAll ();
if (!g_game.raceaborted) highscore_pos = Score.CalcRaceResult();
if (g_game.game_type == CUPRACING) {
@ -196,7 +196,6 @@ void CGameOver::Loop(double time_step) {
CControl *ctrl = g_game.player->ctrl;
int width = Winsys.resolution.width;
int height = Winsys.resolution.height;
check_gl_error();
Music.Update();

View File

@ -124,7 +124,6 @@ void CGameTypeSelect::Loop (double time_step) {
int ww = Winsys.resolution.width;
int hh = Winsys.resolution.height;
check_gl_error();
Music.Update();
ScopedRenderMode rm(GUI);
ClearRenderContext();

View File

@ -54,7 +54,6 @@ void CHelp::Enter() {
void CHelp::Loop(double timestep) {
Music.Update();
check_gl_error();
ClearRenderContext();
ScopedRenderMode rm(GUI);
SetupGuiDisplay();

View File

@ -65,8 +65,8 @@ static void draw_time() {
timestr += secstr;
if (param.use_papercut_font < 2) {
Tex.DrawNumStr (timestr, 20, 10, 1, colWhite);
Tex.DrawNumStr (hundrstr, 136, 10, 0.7, colWhite);
Tex.DrawNumStr(timestr, 50, 12, 1, colWhite);
Tex.DrawNumStr(hundrstr, 170, 12, 0.7, colWhite);
} else {
/*

View File

@ -95,7 +95,6 @@ void CIntro::Loop (double time_step) {
CControl *ctrl = g_game.player->ctrl;
int width = Winsys.resolution.width;
int height = Winsys.resolution.height;
check_gl_error();
if (startframe->active) {
startframe->Update(time_step);

View File

@ -46,7 +46,6 @@ void CLoading::Loop(double time_step) {
int ww = Winsys.resolution.width;
int hh = Winsys.resolution.height;
string msg = Trans.Text(29) + " " + g_game.course->name;
check_gl_error ();
ScopedRenderMode rm(GUI);
ClearRenderContext();
SetupGuiDisplay();
@ -56,7 +55,7 @@ void CLoading::Loop(double time_step) {
draw_ui_snow();
}
Tex.Draw (TEXLOGO, CENTER, 40, 0.7);
Tex.Draw(TEXLOGO, CENTER, 40, 0.6);
Tex.Draw(BOTTOM_LEFT, 0, hh-256, 1);
Tex.Draw(BOTTOM_RIGHT, ww-256, hh-256, 1);
Tex.Draw(TOP_LEFT, 0, 0, 1);

View File

@ -55,7 +55,7 @@ void InitGame (int argc, char **argv) {
g_game.snow_id = 0;
g_game.cup = 0;
g_game.theme_id = 0;
g_game.force_treemap = 0;
g_game.force_treemap = false;
g_game.treesize = 3;
g_game.treevar = 3;
}
@ -74,7 +74,7 @@ int main( int argc, char **argv ) {
cout << "\n----------- (C) 2010-2013 Extreme Tuxracer Team --------\n\n";
srand(time(NULL));
InitConfig (argv[0]);
InitConfig();
InitGame(argc, argv);
Winsys.Init();
InitOpenglExtensions();
@ -86,7 +86,7 @@ int main( int argc, char **argv ) {
// theses resources must or should be loaded before splashscreen starts
Tex.LoadTextureList();
FT.LoadFontlist();
Winsys.SetFonttype ();
FT.SetFontFromSettings();
Audio.Open();
Music.LoadMusicList();
Music.SetVolume(param.music_volume);

View File

@ -112,7 +112,6 @@ void CNewPlayer::Loop(double timestep) {
TColor col;
Music.Update();
check_gl_error();
ClearRenderContext();
ScopedRenderMode rm(GUI);
SetupGuiDisplay();

View File

@ -509,6 +509,10 @@ void glTexCoord2(const TVector2d& vec) {
glTexCoord2d(vec.x, vec.y);
}
void glLoadMatrix(const TMatrix<4, 4>& mat) {
glLoadMatrixd((const double*) mat.data());
}
void glMultMatrix(const TMatrix<4, 4>& mat) {
glMultMatrixd((const double*) mat.data());
}

View File

@ -79,6 +79,7 @@ void glNormal3(const TVector3d& vec);
void glVertex3(const TVector3d& vec);
void glTexCoord2(const TVector2d& vec);
void glLoadMatrix(const TMatrix<4, 4>& mat);
void glMultMatrix(const TMatrix<4, 4>& mat);

View File

@ -57,8 +57,6 @@ void COglTest::Enter() {
}
void COglTest::Loop(double timestep) {
check_gl_error();
// ------------- 3d scenery ---------------------------------------
ScopedRenderMode rm(TUX);
ClearRenderContext(colDDBackgr);

View File

@ -37,7 +37,7 @@ GNU General Public License for more details.
// ====================================================================
#define MAX_num_snowparticles 4000
#define BASE_num_snowparticles 1000
#define BASE_snowparticles 1000.0/1024 // This is intentionally not divided by height*width to make particle count increasing slower than screen size
#define GRAVITY_FACTOR 0.015
#define BASE_VELOCITY 0.05
#define VELOCITY_RANGE 0.02
@ -146,7 +146,8 @@ void TGuiParticle::Update(double time_step, double push_timestep, const TVector2
}
void init_ui_snow() {
for (int i=0; i<BASE_num_snowparticles; i++)
particles_2d.clear();
for (int i = 0; i < BASE_snowparticles * Winsys.resolution.width; i++)
particles_2d.push_back(TGuiParticle(FRandom(), FRandom()));
push_position = TVector2d(0.0, 0.0);
}
@ -175,7 +176,7 @@ void update_ui_snow(double time_step) {
for (list<TGuiParticle>::iterator p = particles_2d.begin(); p != particles_2d.end();) {
if (p->pt.y < -0.05) {
if (particles_2d.size() > BASE_num_snowparticles && FRandom() > 0.2) {
if (particles_2d.size() > BASE_snowparticles * Winsys.resolution.width && FRandom() > 0.2) {
p = particles_2d.erase(p);
} else {
p->pt.x = FRandom();

View File

@ -75,7 +75,6 @@ void CPaused::Loop (double time_step) {
CControl *ctrl = g_game.player->ctrl;
int width = Winsys.resolution.width;
int height = Winsys.resolution.height;
check_gl_error();
Music.Update();
ClearRenderContext();

View File

@ -100,36 +100,28 @@ void CControl::Init () {
// collision
// --------------------------------------------------------------------
bool CControl::CheckTreeCollisions (const TVector3d& pos, TVector3d *tree_loc, double *tree_diam) {
bool CControl::CheckTreeCollisions(const TVector3d& pos, TVector3d *tree_loc) {
// These variables are used to cache collision detection results
static bool last_collision = false;
static TVector3d last_collision_tree_loc(-999, -999, -999);
static double last_collision_tree_diam = 0;
static TVector3d last_collision_pos(-999, -999, -999);
TVector3d dist_vec = pos - last_collision_pos;
if (MAG_SQD(dist_vec) < COLL_TOLERANCE) {
if (last_collision && !cairborne) {
if (tree_loc != NULL) *tree_loc = last_collision_tree_loc;
if (tree_diam != NULL) *tree_diam = last_collision_tree_diam;
return true;
} else return false;
}
double diam = 0.0;
TVector3d loc(0, 0, 0);
bool hit = false;
TMatrix<4, 4> mat;
TCollidable *trees = &Course.CollArr[0];
size_t num_trees = Course.CollArr.size();
size_t tree_type = trees[0].tree_type;
const TPolyhedron* ph = &Course.GetPoly (tree_type);
for (size_t i=0; i<num_trees; i++) {
diam = trees[i].diam;
double height = trees[i].height;
loc = trees[i].pt;
for (size_t i = 0; i<Course.CollArr.size(); i++) {
double diam = Course.CollArr[i].diam;
double height = Course.CollArr[i].height;
loc = Course.CollArr[i].pt;
TVector3d distvec(loc.x - pos.x, 0.0, loc.z - pos.z);
// check distance from tree; .6 is the radius of a bounding sphere
@ -137,42 +129,31 @@ bool CControl::CheckTreeCollisions (const TVector3d& pos, TVector3d *tree_loc, d
squared_dist *= squared_dist;
if (MAG_SQD(distvec) > squared_dist) continue;
// have to look at polyhedron - switch to correct one if necessary
if (tree_type != trees[i].tree_type) {
tree_type = trees[i].tree_type;
ph = &Course.GetPoly (tree_type);
}
TPolyhedron ph2 = *ph;
TPolyhedron ph2 = Course.GetPoly(Course.CollArr[i].tree_type);
mat.SetScalingMatrix(diam, height, diam);
TransPolyhedron(mat, ph2);
mat.SetTranslationMatrix(loc.x, loc.y, loc.z);
TransPolyhedron(mat, ph2);
// hit = TuxCollision2 (pos, ph2);
hit = g_game.character->shape->Collision(pos, ph2);
hit = g_game.character->shape->Collision(pos, ph2);
if (hit == true) {
if (tree_loc != NULL) *tree_loc = loc;
if (tree_diam != NULL) *tree_diam = diam;
Sound.Play("tree_hit", 0);
break;
}
}
last_collision_tree_loc = loc;
last_collision_tree_diam = diam;
last_collision_pos = pos;
last_collision = hit;
if (hit) last_collision = true;
else last_collision = false;
return hit;
}
void CControl::AdjustTreeCollision(const TVector3d& pos, TVector3d *vel) {
TVector3d treeLoc;
double tree_diam;
if (CheckTreeCollisions (pos, &treeLoc, &tree_diam)) {
if (CheckTreeCollisions(pos, &treeLoc)) {
TVector3d treeNml(
pos.x - treeLoc.x,
0,
@ -196,10 +177,6 @@ void CControl::AdjustTreeCollision (const TVector3d& pos, TVector3d *vel) {
}
void CControl::CheckItemCollection(const TVector3d& pos) {
static TVector3d last_collision_pos(-999, -999, -999);
TVector3d dist_vec = pos - last_collision_pos;
if (MAG_SQD (dist_vec) < COLL_TOLERANCE) return;
TItem *items = &Course.NocollArr[0];
size_t num_items = Course.NocollArr.size();
@ -210,17 +187,12 @@ void CControl::CheckItemCollection (const TVector3d& pos) {
double height = items[i].height;
const TVector3d& loc = items[i].pt;
TVector3d distvec(loc.x - pos.x, 0.0, loc.z - pos.z);
double squared_dist = (diam / 2. + 0.6);
TVector3d distvec(loc.x - pos.x, loc.y - pos.y, loc.z - pos.z);
double squared_dist = (diam / 2. + 0.7);
squared_dist *= squared_dist;
if (MAG_SQD (distvec) > squared_dist) continue;
if ((pos.y - 0.6 >= loc.y && pos.y - 0.6 <= loc.y + height) ||
(pos.y + 0.6 >= loc.y && pos.y + 0.6 <= loc.y + height) ||
(pos.y - 0.6 <= loc.y && pos.y + 0.6 >= loc.y + height)) {
if (MAG_SQD(distvec) <= squared_dist) { // Check collision using a bounding sphere
items[i].collectable = 0;
g_game.herring += 1;
Sound.HaltAll ();
Sound.Play("pickup1", 0);
Sound.Play("pickup2", 0);
Sound.Play("pickup3", 0);

View File

@ -81,7 +81,7 @@ private:
double ode_time_step;
double finish_speed;
bool CheckTreeCollisions (const TVector3d& pos, TVector3d *tree_loc, double *tree_diam);
bool CheckTreeCollisions(const TVector3d& pos, TVector3d *tree_loc);
void AdjustTreeCollision(const TVector3d& pos, TVector3d *vel);
void CheckItemCollection(const TVector3d& pos);

View File

@ -169,7 +169,8 @@ void CRaceSelect::Enter() {
snow = AddIconButton(iconleft + iconspace, icontop, Tex.GetTexture(SNOW_BUTT), iconsize, 3, g_game.snow_id);
wind = AddIconButton(iconleft + iconspace*2, icontop, Tex.GetTexture(WIND_BUTT), iconsize, 3, g_game.wind_id);
mirror = AddIconButton(iconleft + iconspace*3, icontop, Tex.GetTexture(MIRROR_BUTT), iconsize, 1, (int)g_game.mirrorred);
random_btn = AddIconButton (iconleft + iconspace*4, icontop, Tex.GetTexture (RANDOM_BUTT), iconsize, 0, 0); int siz = FT.AutoSizeN (5);
random_btn = AddIconButton(iconleft + iconspace*4, icontop, Tex.GetTexture(RANDOM_BUTT), iconsize, 0, 0);
int siz = FT.AutoSizeN(5);
int len1 = FT.GetTextWidth(Trans.Text(13));
textbuttons[0] = AddTextButton(Trans.Text(13), area.right-len1-50, AutoYPosN(80), siz);
textbuttons[1] = AddTextButton(Trans.Text(8), area.left + 50, AutoYPosN(80), siz);
@ -180,7 +181,6 @@ void CRaceSelect::Loop(double timestep) {
int hh = Winsys.resolution.height;
TColor col;
check_gl_error();
ScopedRenderMode rm(GUI);
ClearRenderContext();
SetupGuiDisplay();

View File

@ -201,7 +201,7 @@ void CRacing::Enter() {
if (param.view_mode < 0 || param.view_mode >= NUM_VIEW_MODES) {
param.view_mode = ABOVE;
}
set_view_mode (ctrl, (TViewMode)param.view_mode);
set_view_mode(ctrl, param.view_mode);
left_turn = right_turn = trick_modifier = false;
ctrl->turn_fact = 0.0;
@ -343,7 +343,6 @@ void CRacing::Loop (double time_step) {
double ycoord = Course.FindYCoord(ctrl->cpos.x, ctrl->cpos.z);
bool airborne = (bool)(ctrl->cpos.y > (ycoord + JUMP_MAX_START_HEIGHT));
check_gl_error();
ClearRenderContext();
Env.SetupFog();
Music.Update();

View File

@ -112,7 +112,6 @@ void CRegist::Loop (double timestep) {
int ww = Winsys.resolution.width;
int hh = Winsys.resolution.height;
Music.Update();
check_gl_error();
ClearRenderContext();
ScopedRenderMode rm(GUI);
SetupGuiDisplay();

View File

@ -55,7 +55,6 @@ void CReset::Loop(double time_step) {
static bool tux_visible = true;
static int tux_visible_count = 0;
check_gl_error();
ClearRenderContext();
Env.SetupFog();
ctrl->UpdatePlayerPos(EPS);

View File

@ -248,7 +248,6 @@ void CScore::Loop (double timestep) {
int hh = Winsys.resolution.height;
Music.Update();
check_gl_error();
ClearRenderContext();
ScopedRenderMode rm(GUI);
SetupGuiDisplay();

View File

@ -25,10 +25,8 @@ GNU General Public License for more details.
#include "audio.h"
#include "gui.h"
#include "course.h"
#include "tux.h"
#include "env.h"
#include "particles.h"
#include "credits.h"
#include "font.h"
#include "game_ctrl.h"
#include "translation.h"
@ -53,31 +51,30 @@ void CSplashScreen::Keyb(unsigned int key, bool special, bool release, int x, in
void CSplashScreen::Enter() {
Winsys.ShowCursor(!param.ice_cursor);
init_ui_snow ();
Music.Play(param.menu_music, -1);
}
void CSplashScreen::Loop(double timestep) {
Music.Update();
check_gl_error();
ClearRenderContext();
ScopedRenderMode rm(GUI);
SetupGuiDisplay();
Trans.LoadLanguages ();
Trans.LoadTranslations(param.language); // Before first texts are being displayed
Tex.Draw (TEXLOGO, CENTER, 60, Winsys.scale);
Tex.Draw(TEXLOGO, CENTER, 60, Winsys.scale/2.0);
FT.SetColor(colDYell);
FT.AutoSizeN(6);
int top = AutoYPosN (60); int dist = FT.AutoDistanceN (3);
int top = AutoYPosN(60);
int dist = FT.AutoDistanceN(3);
FT.DrawString(CENTER, top, Trans.Text(67));
FT.DrawString(CENTER, top+dist, Trans.Text(68));
Winsys.SwapBuffers();
init_ui_snow();
Course.MakeStandardPolyhedrons();
Sound.LoadSoundList();
Credits.LoadCreditList ();
Char.LoadCharacterList();
Course.LoadObjectTypes();
Course.LoadTerrainTypes();

View File

@ -130,6 +130,8 @@ void State::Manager::PollEvent() {
}
void State::Manager::CallLoopFunction() {
check_gl_error();
float cur_time = SDL_GetTicks() * 1.e-3;
g_game.time_step = cur_time - clock_time;
if (g_game.time_step < 0.0001) g_game.time_step = 0.0001;

View File

@ -551,8 +551,6 @@ void CTexture::LoadTextureList () {
CommonTex[id]->LoadMipmap(param.tex_dir, texfile, rep);
else
CommonTex[id]->Load(param.tex_dir, texfile);
Index[name] = CommonTex[id];
} else Message("wrong texture id in textures.lst");
}
} else Message("failed to load common textures");
@ -563,7 +561,6 @@ void CTexture::FreeTextureList () {
delete CommonTex[i];
}
CommonTex.clear();
Index.clear();
}
TTexture* CTexture::GetTexture(size_t idx) const {
@ -571,25 +568,12 @@ TTexture* CTexture::GetTexture (size_t idx) const {
return CommonTex[idx];
}
TTexture* CTexture::GetTexture (const string& name) const {
return Index.at(name);
}
bool CTexture::BindTex(size_t idx) {
if (idx >= CommonTex.size()) return false;
CommonTex[idx]->Bind();
return true;
}
bool CTexture::BindTex (const string& name) {
try {
Index.at(name)->Bind();
} catch (...) {
return false;
}
return true;
}
// ---------------------------- Draw ----------------------------------
void CTexture::Draw(size_t idx) {
@ -597,37 +581,21 @@ void CTexture::Draw (size_t idx) {
CommonTex[idx]->Draw();
}
void CTexture::Draw (const string& name) {
Index[name]->Draw();
}
void CTexture::Draw(size_t idx, int x, int y, float size) {
if (CommonTex.size() > idx)
CommonTex[idx]->Draw(x, y, size, forientation);
}
void CTexture::Draw (const string& name, int x, int y, float size) {
Index[name]->Draw(x, y, size, forientation);
}
void CTexture::Draw(size_t idx, int x, int y, int width, int height) {
if (CommonTex.size() > idx)
CommonTex[idx]->Draw(x, y, width, height, forientation);
}
void CTexture::Draw (const string& name, int x, int y, int width, int height) {
Index[name]->Draw (x, y, width, height, forientation);
}
void CTexture::DrawFrame(size_t idx, int x, int y, double w, double h, int frame, const TColor& col) {
if (CommonTex.size() > idx)
CommonTex[idx]->DrawFrame(x, y, w, h, frame, col);
}
void CTexture::DrawFrame (const string& name, int x, int y, double w, double h, int frame, const TColor& col) {
Index[name]->DrawFrame (x, y, w, h, frame, col);
}
void CTexture::SetOrientation(Orientation orientation) {
forientation = orientation;
}
@ -670,7 +638,7 @@ void CTexture::DrawNumChr (char c, int x, int y, int w, int h, const TColor& col
}
void CTexture::DrawNumStr(const string& s, int x, int y, float size, const TColor& col) {
if (!BindTex ("ziff032")) {
if (!BindTex(NUMERIC_FONT)) {
Message("DrawNumStr: missing texture");
return;
}

View File

@ -20,7 +20,6 @@ GNU General Public License for more details.
#include "bh.h"
#include <vector>
#include <map>
#define TEXLOGO 0
#define SNOW_START 1
@ -124,7 +123,6 @@ public:
class CTexture {
private:
vector<TTexture*> CommonTex;
map<string, TTexture*> Index;
Orientation forientation;
void DrawNumChr(char c, int x, int y, int w, int h, const TColor& col);
@ -135,21 +133,13 @@ public:
void FreeTextureList();
TTexture* GetTexture(size_t idx) const;
TTexture* GetTexture (const string& name) const;
bool BindTex(size_t idx);
bool BindTex (const string& name);
void Draw(size_t idx);
void Draw (const string& name);
void Draw(size_t idx, int x, int y, float size);
void Draw (const string& name, int x, int y, float size);
void Draw(size_t idx, int x, int y, int width, int height);
void Draw (const string& name, int x, int y, int width, int height);
void DrawFrame(size_t idx, int x, int y, double w, double h, int frame, const TColor& col);
void DrawFrame (const string& name, int x, int y, double w, double h, int frame, const TColor& col);
void SetOrientation(Orientation orientation);
void DrawNumStr(const string& s, int x, int y, float size, const TColor& col);

View File

@ -326,7 +326,6 @@ void DrawActionFloat (size_t nr, const string& s, int y, float f) {
void RenderChar(double timestep) {
if (!must_render) return;
bool is_visible = false;
check_gl_error();
// ------------- 3d scenery ---------------------------------------
ScopedRenderMode rm1(TUX);

View File

@ -227,7 +227,6 @@ void PrintFrameParams (int ytop, TKeyframe *frame) {
void RenderSingleFrame(double timestep) {
if (!must_render) return;
check_gl_error ();
// ------------------ 3d scenery ----------------------------------
ScopedRenderMode rm1(TUX);
@ -307,7 +306,6 @@ void SequenceMouse (int button, int state, int x, int y) {}
void SequenceMotion(int x, int y) {}
void RenderSequence(double timestep) {
check_gl_error();
ScopedRenderMode rm(TUX);
ClearRenderContext(colDDBackgr);

View File

@ -125,8 +125,13 @@ void CTranslation::SetDefaultTranslations () {
texts[83] = "Randomize settings";
texts[84] = "Fullscreen setting has changed,";
texts[85] = "You need to restart the game";
texts[84] = "Score";
texts[85] = "Herring";
texts[86] = "Time";
texts[87] = "Path length";
texts[88] = "Average speed";
texts[89] = "Position";
texts[90] = "in highscore list";
}
const string& CTranslation::Text(size_t idx) const {
@ -149,26 +154,17 @@ void CTranslation::LoadLanguages () {
const string& line = list.Line(i-1);
languages[i].lang = SPStrN(line, "lang", "en_GB");
languages[i].language = SPStrN(line, "language", "English");
LangIndex[languages[i].lang] = i;
}
if (param.language == string::npos)
param.language = GetSystemDefaultLangIdx();
}
size_t CTranslation::GetLangIdx (const string& lang) const {
return LangIndex.at(lang);
}
const string& CTranslation::GetLanguage(size_t idx) const {
if (idx >= languages.size()) return errorString;
return languages[idx].language;
}
const string& CTranslation::GetLanguage (const string& lang) const {
return GetLanguage (GetLangIdx (lang));
}
void CTranslation::LoadTranslations(size_t langidx) {
SetDefaultTranslations();
if (langidx == 0 || langidx >= languages.size()) return;
@ -205,9 +201,13 @@ string CTranslation::GetSystemDefaultLang() {
}
size_t CTranslation::GetSystemDefaultLangIdx() const {
try {
return GetLangIdx(GetSystemDefaultLang());
} catch (...) {
std::string name = GetSystemDefaultLang();
return GetLangIdx(name);
}
size_t CTranslation::GetLangIdx(const string& lang) const {
for (size_t i = 0; i < languages.size(); i++)
if (languages[i].lang == lang)
return i;
return 0;
}
}

View File

@ -24,11 +24,10 @@ An name convention:
#define TRANSLATION_H
#include "bh.h"
#include <map>
#include <vector>
#define MAX_LANGUAGES 32
#define NUM_COMMON_TEXTS 86
#define NUM_COMMON_TEXTS 93
#define MAX_COMMON_TEXT_LINES NUM_COMMON_TEXTS*2
@ -40,19 +39,17 @@ struct TLang {
class CTranslation {
private:
string texts[NUM_COMMON_TEXTS];
map<string, size_t> LangIndex;
public:
vector<TLang> languages;
void LoadLanguages();
size_t GetLangIdx (const string& lang) const;
const string& GetLanguage(size_t idx) const;
const string& GetLanguage (const string& lang) const;
void SetDefaultTranslations();
const string& Text(size_t idx) const;
void LoadTranslations(size_t langidx);
static string GetSystemDefaultLang();
size_t GetSystemDefaultLangIdx() const;
size_t GetLangIdx(const string& lang) const;
};
extern CTranslation Trans;

View File

@ -152,8 +152,7 @@ void setup_view_matrix (CControl *ctrl, bool save_mat) {
if (save_mat) {
stationary_matrix = view_mat;
}
glLoadIdentity();
glMultMatrix(view_mat);
glLoadMatrix(view_mat);
}
TVector3d MakeViewVector() {
@ -168,8 +167,7 @@ TVector3d MakeViewVector () {
void update_view(CControl *ctrl, double dt) {
if (is_stationary) {
glLoadIdentity();
glMultMatrix(stationary_matrix);
glLoadMatrix(stationary_matrix);
return;
}

View File

@ -182,14 +182,6 @@ void CWinsys::KeyRepeat (bool repeat) {
else SDL_EnableKeyRepeat(0, 0);
}
void CWinsys::SetFonttype () {
if (param.use_papercut_font > 0) {
FT.SetFont ("pc20");
} else {
FT.SetFont ("bold");
}
}
void CWinsys::CloseJoystick() {
if (joystick_active) SDL_JoystickClose(joystick);
}
@ -199,7 +191,6 @@ void CWinsys::Quit () {
Score.SaveHighScore();
SaveMessages();
Audio.Close(); // frees music and sound as well
FT.Clear ();
if (g_game.argument < 1) Players.SavePlayers();
SDL_Quit();
}

View File

@ -56,7 +56,6 @@ public:
void SetupVideoMode(size_t idx);
void SetupVideoMode(int width, int height);
void KeyRepeat(bool repeat);
void SetFonttype ();
void PrintJoystickInfo() const;
void ShowCursor(bool visible) {SDL_ShowCursor(visible);}
void SwapBuffers() {SDL_GL_SwapBuffers();}