rubidium
49de245564
(svn r22735) -Fix [FS#4718]: triggering NOT_REACHED when playing with a NewGRF that supplies genders/cases for a language that you removed from your installation
13 years ago
rubidium
14fae95134
(svn r22735) -Fix [FS#4718]: triggering NOT_REACHED when playing with a NewGRF that supplies genders/cases for a language that you removed from your installation
13 years ago
frosch
df02515cf1
(svn r22630) -Cleanup: Remove SwitchToNormalRefStack() and SwitchToErrorRefStack().
13 years ago
frosch
5ea8b07e05
(svn r22630) -Cleanup: Remove SwitchToNormalRefStack() and SwitchToErrorRefStack().
13 years ago
frosch
600c6c0f2e
(svn r22628) -Codechange: Allow passing the textref stack values to use to StartTextRefStackUsage() instead of always using the temporary NewGRF registers.
13 years ago
frosch
2158f4f1bf
(svn r22628) -Codechange: Allow passing the textref stack values to use to StartTextRefStackUsage() instead of always using the temporary NewGRF registers.
13 years ago
frosch
e7971ab5df
(svn r22627) -Codechange: Rename PrepareTextRefStackUsage() to StartTextRefStackUsage() to make it more obvious that you must call StopTextRefStackUsage() at some point. Also extent the documentation.
13 years ago
frosch
f93c8ce5aa
(svn r22627) -Codechange: Rename PrepareTextRefStackUsage() to StartTextRefStackUsage() to make it more obvious that you must call StopTextRefStackUsage() at some point. Also extent the documentation.
13 years ago
terkhen
3d96adb03f
(svn r22564) -Codechange: Rename Get and Store persistent storage functions to GetValue and StoreValue.
13 years ago
terkhen
0749c65d74
(svn r22564) -Codechange: Rename Get and Store persistent storage functions to GetValue and StoreValue.
13 years ago
yexo
024869f33c
(svn r21885) -Fix [FS#4422]: NewGRF string codes 0x80 and 0x81 were broken since the typechecking of string parameters
14 years ago
yexo
0cdb1c78cd
(svn r21885) -Fix [FS#4422]: NewGRF string codes 0x80 and 0x81 were broken since the typechecking of string parameters
14 years ago
yexo
70fe377930
(svn r21435) -Fix: NewGRF strings that referenced a value that was set by a string command later in the string failed
14 years ago
yexo
ac0e83a7e2
(svn r21435) -Fix: NewGRF strings that referenced a value that was set by a string command later in the string failed
14 years ago
yexo
a2f8d89444
(svn r21433) -Fix: [NewGRF] a newgrf with incomplete string codes at the end of a string could cause invalid memory reads
14 years ago
yexo
5c181fe556
(svn r21433) -Fix: [NewGRF] a newgrf with incomplete string codes at the end of a string could cause invalid memory reads
14 years ago
rubidium
0e59d09ada
(svn r21327) -Fix: cases are always "off-by-one" w.r.t. to the case table as there is an implicit default case with index 0
14 years ago
rubidium
fad75f5d5a
(svn r21327) -Fix: cases are always "off-by-one" w.r.t. to the case table as there is an implicit default case with index 0
14 years ago
rubidium
6e425d3e72
(svn r21326) -Fix: off-by-one in case choice list construction causing case lists to fail completely
14 years ago
rubidium
4e6d29351e
(svn r21326) -Fix: off-by-one in case choice list construction causing case lists to fail completely
14 years ago
rubidium
4958bf44d9
(svn r21228) -Fix: some MSVC 64 bits warnings
14 years ago
rubidium
19cbf9b479
(svn r21228) -Fix: some MSVC 64 bits warnings
14 years ago
rubidium
85791c4783
(svn r21221) -Fix (r11429): short cargo units names for some cargo types/strings are not properly mapped to the strings that we use for the default industries
14 years ago
rubidium
a950e9a4a8
(svn r21221) -Fix (r11429): short cargo units names for some cargo types/strings are not properly mapped to the strings that we use for the default industries
14 years ago
rubidium
3552be9616
(svn r21216) -Feature: [NewGRF] Allow specifying a "choice list" for plurals
14 years ago
rubidium
18f0f1d81d
(svn r21216) -Feature: [NewGRF] Allow specifying a "choice list" for plurals
14 years ago
rubidium
6b0ee92bc9
(svn r21211) -Feature: [NewGRF] Allow specifying a "choice list" for cases and genders
14 years ago
rubidium
ddf71db8c2
(svn r21211) -Feature: [NewGRF] Allow specifying a "choice list" for cases and genders
14 years ago
rubidium
17dd6099d9
(svn r21209) -Feature: [NewGRF] Allow setting the gender of the current string or select the case of the next substring
14 years ago
rubidium
0f9c40244a
(svn r21209) -Feature: [NewGRF] Allow setting the gender of the current string or select the case of the next substring
14 years ago
rubidium
3c09b725d6
(svn r21207) -Codechange: replace the magic 0x00DE constant with something less magic
14 years ago
rubidium
e84c52e662
(svn r21207) -Codechange: replace the magic 0x00DE constant with something less magic
14 years ago
rubidium
e090d8acad
(svn r21206) -Document: that, and why string code 9A 02 (skip/ignore next colour code) is not implemented
14 years ago
rubidium
b00858473c
(svn r21206) -Document: that, and why string code 9A 02 (skip/ignore next colour code) is not implemented
14 years ago
rubidium
f79d7f4c93
(svn r21204) -Codechange: unify style of string code conversion
14 years ago
rubidium
0f2a9877b8
(svn r21204) -Codechange: unify style of string code conversion
14 years ago
rubidium
fca95882cb
(svn r21202) -Codechange: allow strings with embedded '\0' in GRFText.
14 years ago
rubidium
4965c7dd2b
(svn r21202) -Codechange: allow strings with embedded '\0' in GRFText.
14 years ago
rubidium
83d1edc2a7
(svn r21201) -Document: some GRFText methods/fields
14 years ago
rubidium
a15d309721
(svn r21201) -Document: some GRFText methods/fields
14 years ago
rubidium
2a29b99681
(svn r21178) -Codechange: pass the language_id to TranslateTTDPatchCodes as well
14 years ago
rubidium
fc75b00992
(svn r21178) -Codechange: pass the language_id to TranslateTTDPatchCodes as well
14 years ago
rubidium
77c1838b3d
(svn r21086) -Feature-ish: [NewGRF] String code to print the weight in format based on settings
14 years ago
rubidium
399eedd884
(svn r21086) -Feature-ish: [NewGRF] String code to print the weight in format based on settings
14 years ago
rubidium
16a2f22741
(svn r21085) -Feature-ish: [NewGRF] Implement stringcode 9A 0C (station name)
14 years ago
rubidium
a6f4769ec7
(svn r21085) -Feature-ish: [NewGRF] Implement stringcode 9A 0C (station name)
14 years ago
rubidium
6a82d9f508
(svn r21084) -Codechange: name a variable to cover its actual implementation better
14 years ago
rubidium
f368d0c449
(svn r21084) -Codechange: name a variable to cover its actual implementation better
14 years ago
frosch
5b86c79fce
(svn r20283) -Codechange: Unify start of doygen comments.
14 years ago
frosch
ed4f806f1d
(svn r20283) -Codechange: Unify start of doygen comments.
14 years ago
rubidium
8c85b4ce3d
(svn r20281) -Codechange: unify case scope closure + break coding style
14 years ago
rubidium
e356cb9405
(svn r20281) -Codechange: unify case scope closure + break coding style
14 years ago
yexo
6117b0abc7
(svn r20249) -Codechange: change the newgrf name/description from a char* to a GRFText* to make translations possible
14 years ago
yexo
d3c1be9abd
(svn r20249) -Codechange: change the newgrf name/description from a char* to a GRFText* to make translations possible
14 years ago
alberth
a25db128cc
(svn r20019) -Codechange: Apply function code style to a few small functions.
14 years ago
alberth
87129fb9f5
(svn r20019) -Codechange: Apply function code style to a few small functions.
14 years ago
yexo
eb763bf537
(svn r20004) -Fix: [NewGRF] stringcodes 82, 83 and 84 weren't properly converted to openttd codes so they didn't work
14 years ago
yexo
3c6fb88a09
(svn r20004) -Fix: [NewGRF] stringcodes 82, 83 and 84 weren't properly converted to openttd codes so they didn't work
14 years ago
yexo
5d37ff11ba
(svn r19570) -Add: [NewGRF] support for extended text code 0x9A 11, print qword
14 years ago
yexo
705955b1e6
(svn r19570) -Add: [NewGRF] support for extended text code 0x9A 11, print qword
14 years ago
yexo
043ff01b4a
(svn r19569) -Fix: possible buffer underflow in newgrf string code
14 years ago
yexo
faf5e19aae
(svn r19569) -Fix: possible buffer underflow in newgrf string code
14 years ago
frosch
d006eff7a9
(svn r19497) -Fix: [NewGRF] Bytes and words get sign-extended for temporary/persistent storage. (Spotted by yexo)
14 years ago
frosch
c049bf3f38
(svn r19497) -Fix: [NewGRF] Bytes and words get sign-extended for temporary/persistent storage. (Spotted by yexo)
14 years ago
yexo
d60fb0640b
(svn r19254) -Codechange: simplify newgrf text code by introducing a few helper functions
14 years ago
yexo
4377b5fd44
(svn r19254) -Codechange: simplify newgrf text code by introducing a few helper functions
14 years ago
alberth
f7e40c76e4
(svn r18492) -Doc: A few Doxygen reference fixes (NewsSubtype reported by Eddi), and a typo fix.
15 years ago
alberth
e0393a3de1
(svn r18492) -Doc: A few Doxygen reference fixes (NewsSubtype reported by Eddi), and a typo fix.
15 years ago
rubidium
eeb6cf766b
(svn r18045) -Fix: GCC 4.5@HEAD not compiling OpenTTD anymore because of a "non-placement deallocation function [is] selected for placement delete", or in other words delete(void *, size_t) is 'magic'.
...
We implemented these delete(void *, size_t) operator functions because MSVC warned that "no matching operator delete found; memory will not be freed if initialization throws an exception" for new(size_t, size_t).
This disables MSVC warning about this because we do not use exceptions in the (constructors that use the) overridden allocation functions, as such they will never be called; delete(void *) remains necessary though.
15 years ago
rubidium
485b5a9c2f
(svn r18045) -Fix: GCC 4.5@HEAD not compiling OpenTTD anymore because of a "non-placement deallocation function [is] selected for placement delete", or in other words delete(void *, size_t) is 'magic'.
...
We implemented these delete(void *, size_t) operator functions because MSVC warned that "no matching operator delete found; memory will not be freed if initialization throws an exception" for new(size_t, size_t).
This disables MSVC warning about this because we do not use exceptions in the (constructors that use the) overridden allocation functions, as such they will never be called; delete(void *) remains necessary though.
15 years ago
rubidium
407c541c82
(svn r18041) -Codechange: some coding style
15 years ago
rubidium
ac25ba62d2
(svn r18041) -Codechange: some coding style
15 years ago
frosch
c1e005ac88
(svn r17802) -Feature(ette) [FS#1862]: [NewGRF] Textstack support for CB 37.
15 years ago
frosch
60188f496d
(svn r17802) -Feature(ette) [FS#1862]: [NewGRF] Textstack support for CB 37.
15 years ago
rubidium
73c99b3b8b
(svn r17585) -Fix [FS#3214]: also do the StringID conversion for StringIDs that are pushed on the (NewGRF string) stack
15 years ago
rubidium
a8c80a5afc
(svn r17585) -Fix [FS#3214]: also do the StringID conversion for StringIDs that are pushed on the (NewGRF string) stack
15 years ago
rubidium
f2a2905669
(svn r17584) -Codechange: split the NewGRF StringID mapping in a 'global' part and a part that's for NewGRF strings
15 years ago
rubidium
47bd3ee4ba
(svn r17584) -Codechange: split the NewGRF StringID mapping in a 'global' part and a part that's for NewGRF strings
15 years ago
rubidium
310465da07
(svn r17570) -Fix: a number of Doxygen warnings about missing parameters, which were sometimes missing and sometimes just typos
15 years ago
rubidium
e8ddf001c8
(svn r17570) -Fix: a number of Doxygen warnings about missing parameters, which were sometimes missing and sometimes just typos
15 years ago
rubidium
99d46e0ad7
(svn r17248) -Fix: add GPL license notice where appropriate
15 years ago
rubidium
7fbc33dae1
(svn r17248) -Fix: add GPL license notice where appropriate
15 years ago
frosch
c9eac207ea
(svn r16498) -Codechange: Remove hardly used HASBITS.
15 years ago
frosch
0d782b0f96
(svn r16498) -Codechange: Remove hardly used HASBITS.
15 years ago
smatz
d091c7d80f
(svn r16492) -Remove: support for gcc2. It hasn't been able to compile OTTD for months. All attempts to do another workaround failed.
15 years ago
smatz
c03ce4b1c7
(svn r16492) -Remove: support for gcc2. It hasn't been able to compile OTTD for months. All attempts to do another workaround failed.
15 years ago
peter1138
75c2f19ed2
(svn r16374) -Fix (r11622): Valid UTF-8 sequences between 0x20 and 0xFF should be allowed as is instead of being treated as control codes.
15 years ago
peter1138
b37fda664c
(svn r16374) -Fix (r11622): Valid UTF-8 sequences between 0x20 and 0xFF should be allowed as is instead of being treated as control codes.
15 years ago
rubidium
c3e87f345d
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
15 years ago
rubidium
b25a4f8231
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
15 years ago
rubidium
f1605cf475
(svn r15696) -Codechange: move the NewGRF language ID into the language file instead of maintaining a table in the code.
15 years ago
rubidium
eb0d43aadd
(svn r15696) -Codechange: move the NewGRF language ID into the language file instead of maintaining a table in the code.
15 years ago
smatz
9021c20b5e
(svn r15299) -Cleanup: remove many redundant includes
16 years ago
smatz
0d3f5e6e74
(svn r15299) -Cleanup: remove many redundant includes
16 years ago
rubidium
28ea38ae55
(svn r14949) -Cleanup: pointer coding style
16 years ago
rubidium
11da45ee55
(svn r14949) -Cleanup: pointer coding style
16 years ago
rubidium
feb15bb421
(svn r14321) -Add: support for newgrfs printing bytes/words/dwords as hexadecimals.
16 years ago
rubidium
6ce4fe40f7
(svn r14321) -Add: support for newgrfs printing bytes/words/dwords as hexadecimals.
16 years ago
rubidium
5314e27ff1
(svn r14087) -Fix [FS#2228]: flawed parsing of words (as in 2 bytes) in GRF strings due to sign extension (minime)
16 years ago
rubidium
9648bf3019
(svn r14087) -Fix [FS#2228]: flawed parsing of words (as in 2 bytes) in GRF strings due to sign extension (minime)
16 years ago
rubidium
142ea9a0aa
(svn r14057) -Fix: NewGRF text stack's "push word" didn't move the data around properly (minime)
16 years ago
rubidium
d1073ba574
(svn r14057) -Fix: NewGRF text stack's "push word" didn't move the data around properly (minime)
16 years ago
rubidium
877ca99198
(svn r12495) -Codechange: reduce the dependency on newgrf_station.h (especially because newgrf_station.h includes a lot of stuff).
16 years ago
rubidium
6f15d34fe5
(svn r12495) -Codechange: reduce the dependency on newgrf_station.h (especially because newgrf_station.h includes a lot of stuff).
16 years ago
rubidium
b84b16cfcd
(svn r12488) -Codechange: split order.h into order_base.h and order_func.h.
16 years ago
rubidium
4a1035ab95
(svn r12488) -Codechange: split order.h into order_base.h and order_func.h.
16 years ago
peter1138
e40b66861c
(svn r12317) -Fix [FS#1815]: Map string IDs that are embedded from other strings.
16 years ago
peter1138
9ccce57438
(svn r12317) -Fix [FS#1815]: Map string IDs that are embedded from other strings.
16 years ago
peter1138
3e017833b2
(svn r12015) -Fix [FS#1716] (Revert r11422): Patch in FS#1430 avoided instead of fixed the problem. GetStringWithArgs() discards information that SCC_GENDER_LIST needs to work. Now use pointers to retrieve GRF strings, so that GetStringPtr() will work correctly. This is advantageous as now no buffer copy is made when using all GRF strings.
17 years ago
peter1138
fb8973c64a
(svn r12015) -Fix [FS#1716] (Revert r11422): Patch in FS#1430 avoided instead of fixed the problem. GetStringWithArgs() discards information that SCC_GENDER_LIST needs to work. Now use pointers to retrieve GRF strings, so that GetStringPtr() will work correctly. This is advantageous as now no buffer copy is made when using all GRF strings.
17 years ago
peter1138
e37b88ebfc
(svn r11981) -Fix [FS#1698]: Use unicode glyph mapping to fix up missing/shuffled sprites in original data files instead of shuffling or skipping
...
sprites directly. Some required glyphs were not loaded.
-Fix: Large capital U with grave (Ù) along with some other glyphs are broken in the original data files, so do no display them.
17 years ago
peter1138
eeeeeb9336
(svn r11981) -Fix [FS#1698]: Use unicode glyph mapping to fix up missing/shuffled sprites in original data files instead of shuffling or skipping
...
sprites directly. Some required glyphs were not loaded.
-Fix: Large capital U with grave (Ù) along with some other glyphs are broken in the original data files, so do no display them.
17 years ago
rubidium
90acd52f22
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
17 years ago
rubidium
d4e6a6bf57
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
17 years ago
rubidium
b09d957f31
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
17 years ago
rubidium
a3ccdcea36
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
17 years ago
rubidium
71d4004a85
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
17 years ago
rubidium
38115acf5a
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
17 years ago
rubidium
db73addb43
(svn r11702) -Codechange: move all date related stuff to date*.
17 years ago
rubidium
b9046c97fb
(svn r11702) -Codechange: move all date related stuff to date*.
17 years ago
rubidium
00c9d3ef20
(svn r11691) -Codechange: move+rename helpers.hpp and only include it when it is really needed.
17 years ago
rubidium
bf98e25e43
(svn r11691) -Codechange: move+rename helpers.hpp and only include it when it is really needed.
17 years ago
rubidium
8427b8bad2
(svn r11675) -Codechange: split the string types from the string functions.
17 years ago
rubidium
433a9f3c09
(svn r11675) -Codechange: split the string types from the string functions.
17 years ago
rubidium
8ebdfb258f
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
17 years ago
rubidium
01e20c9140
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
17 years ago
glx
ab99e83a83
(svn r11627) -Fix [FS#1532] (r11145): poping from text reference stack must be done in a precise order. But some compiler (MSVC) over optimised it and inverted this order.
17 years ago
glx
1a8afc5fb4
(svn r11627) -Fix [FS#1532] (r11145): poping from text reference stack must be done in a precise order. But some compiler (MSVC) over optimised it and inverted this order.
17 years ago
rubidium
ad022c535c
(svn r11622) -Codechange: support the unicode version of the 'control' characters.
17 years ago
rubidium
78ae599790
(svn r11622) -Codechange: support the unicode version of the 'control' characters.
17 years ago
glx
f6907db708
(svn r11293) -Fix: newgrf defined industry news messages use TTD format for args, which is not the same as our. So we must detect those strings and pass them the right params
17 years ago
glx
f3d79154eb
(svn r11293) -Fix: newgrf defined industry news messages use TTD format for args, which is not the same as our. So we must detect those strings and pass them the right params
17 years ago
rubidium
eaff35a821
(svn r11287) -Codechange: add support for pushing paramaters into NewIndustries' error messages. Patch by Csaboka.
17 years ago
rubidium
e21b7634bf
(svn r11287) -Codechange: add support for pushing paramaters into NewIndustries' error messages. Patch by Csaboka.
17 years ago
glx
0cc8449101
(svn r11257) -Fix (r11145): wrong endian used when preparing text ref stack
17 years ago
glx
f45b2e8d38
(svn r11257) -Fix (r11145): wrong endian used when preparing text ref stack
17 years ago
rubidium
08c5765c0b
(svn r11145) -Codechange: add support for "decoding" TTDPs string codes wrt to registers 0x100 to 0x10F.
17 years ago
rubidium
240285b8d8
(svn r11145) -Codechange: add support for "decoding" TTDPs string codes wrt to registers 0x100 to 0x10F.
17 years ago
glx
dfa82cd968
(svn r10877) -Fix: some isocodes were wrong
17 years ago
glx
35e8f64e9a
(svn r10877) -Fix: some isocodes were wrong
17 years ago
maedhros
bfecf0268d
(svn r10130) -Fix (r4493): SetCurrentGrfLangID returned the wrong language ids for most languages.
17 years ago
maedhros
860fe49b80
(svn r10130) -Fix (r4493): SetCurrentGrfLangID returned the wrong language ids for most languages.
17 years ago
maedhros
94d390eac4
(svn r10114) -Fix: Only load newgrf error messages if the language matches the current
...
language. Since only one error can be loaded anyway, if the language didn't
match you'd get "Undefined string". Also since we're only loading one language
there's no need to use AddGRFString any more.
17 years ago
maedhros
109dd33c4a
(svn r10114) -Fix: Only load newgrf error messages if the language matches the current
...
language. Since only one error can be loaded anyway, if the language didn't
match you'd get "Undefined string". Also since we're only loading one language
there's no need to use AddGRFString any more.
17 years ago
belugas
8165fac424
(svn r9769) [newGRF] -Feature: Add translation support for Esperanto, Bulgarian, Japanese and Korean
17 years ago
belugas
e4dc1f460b
(svn r9769) [newGRF] -Feature: Add translation support for Esperanto, Bulgarian, Japanese and Korean
17 years ago
belugas
097b3b3c7b
(svn r9662) -Documentation: Doxygen corrections and @file omissions
17 years ago
belugas
607a55f4ec
(svn r9662) -Documentation: Doxygen corrections and @file omissions
17 years ago
belugas
8952924c64
(svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
17 years ago
belugas
dcd510c81f
(svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
17 years ago
rubidium
979ccd45ba
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
17 years ago
rubidium
24c4d5b06d
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
17 years ago
rubidium
4169bfba06
(svn r9050) -Codechange: Foo(void) -> Foo()
17 years ago
rubidium
36bb92ae24
(svn r9050) -Codechange: Foo(void) -> Foo()
17 years ago
KUDr
6af105993c
(svn r8117) -Fix (r8114): 'no matching operator delete found' warning on VC8
18 years ago
KUDr
96ea43d1b2
(svn r8117) -Fix (r8114): 'no matching operator delete found' warning on VC8
18 years ago
tron
f2e8d4220d
(svn r8114) Allocate struct GRFText in the C++ way
18 years ago
tron
2fa5337474
(svn r8114) Allocate struct GRFText in the C++ way
18 years ago
KUDr
28e969924b
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
18 years ago
KUDr
33be1ecfb1
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
18 years ago
rubidium
a7d0cdf95f
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
18 years ago
rubidium
f35ed4bbc2
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
18 years ago
KUDr
07c30785ab
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
18 years ago
KUDr
e373ea7096
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
18 years ago