Commit Graph

354 Commits (ba4a564f31e09016cb3a1d00ca030199f25ed75f)

Author SHA1 Message Date
rubidium 7a5798695d (svn r14919) -Feature: distant joining of stations (Frostregen and PhilSophus) 16 years ago
frosch eb6df17b1a (svn r14902) -Feature: Advanced setting to keep various building tools active, which are usually closed after placing an object. (planetmaker) 16 years ago
rubidium 567b262901 (svn r14899) -Feature: remove the window limit, but leave a configurable limit on the number of non-sticky non-vital windows.
-Fix [FS#2499]: crashes/misbehaviours when (almost) all windows are stickied.
16 years ago
rubidium ac0e2e6d5a (svn r14885) -Fix: if settings minimum != 1 and 0-is-disabled is enabled, one could set the setting in-game to an out-of-valid-range value. 16 years ago
smatz 65a40146f2 (svn r14839) -Fix [FS#2496](r14835): one occurence of train_income_warn wasn't updated 16 years ago
rubidium e62e12e7f5 (svn r14827) -Feature [FS#1984]: few (optional) optimisations to making (initial) orders (sulai) 16 years ago
glx 06519a56f2 (svn r14816) -Fix: signed/unsigned warnings (MSVC) 16 years ago
smatz 7869c4ba66 (svn r14815) -Codechange: separate 'highscore' code from 'company' code 16 years ago
rubidium f08fe262af (svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth) 16 years ago
rubidium 8150319cb2 (svn r14799) -Codechange: move drawing a single settings entry to it's own function (Alberth) 16 years ago
rubidium 74f403b408 (svn r14798) -Codechange: move variable declaration to first use of variable (Alberth) 16 years ago
rubidium 82087f04ec (svn r14797) -Codechange: replace even more magic numbers with constants (Alberth) 16 years ago
rubidium a8f73dbb84 (svn r14796) -Fix: if using variable, use it everywhere instead of hardcoding it's value sometimes (Alberth) 16 years ago
rubidium 183990de30 (svn r14795) -Codechange: replace a magic number with a constant (Alberth) 16 years ago
rubidium 1bc6b7a7a5 (svn r14794) -Document: a few functions/variables (Alberth) 16 years ago
rubidium 4c1c6cd8e8 (svn r14792) -Feature: make the date format for default savegame/screenshot names configurable 16 years ago
rubidium d3144b6f04 (svn r14789) -Feature: allow scrolling with the left mouse button pressed (if enabled). Primarily useful for systems with touch screen (aapo) 16 years ago
rubidium 5aa2dac751 (svn r14767) -Codechange: remove some unneeded artificial limits from currencies and use the bounds of the data type. 16 years ago
rubidium ef20d229ab (svn r14755) -Codechange: remove ending year as it can't be changed anyways. 16 years ago
rubidium e83cca7d13 (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter. 16 years ago
rubidium 1ce8df9dac (svn r14658) -Change: allow changing town names when there are no towns in the scenario yet. 16 years ago
peter1138 150fd2a49f (svn r14609) -Codechange: Use supplied button colour instead of hardcoded yellow, for 'greyed out' arrow buttons. (Yorick) 16 years ago
skidd13 9b282b3e51 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible 16 years ago
rubidium dc3ce6bbe7 (svn r14462) -Codechange: replace magic number with already existing constant (Albert) 16 years ago
frosch 40018be915 (svn r14412) -Documentation: Comment some functions related to the advanced settings. Patch by Alberth, but with less excessive use of 'at'. 16 years ago
rubidium f49d5057ee (svn r14390) -Codechange: replace magic constants with symbolic constants. 16 years ago
smatz ffa39caf3d (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString() 16 years ago
peter1138 2c92a979ad (svn r14018) -Fix (r14017): Typos prevented compilation. 16 years ago
belugas f4997d8866 (svn r14017) -Codechange: DrawArrowButtons now uses Colours enum to specify the colour of the button 16 years ago
rubidium b29f290816 (svn r13935) -Codechange [YAPP]: PBS signals can now be built with the normal signal tools. (michi_cc) 16 years ago
rubidium bef1770590 (svn r13927) -Add [YAPP]: Draw reserved tracks darker, toggeld by a patch setting. (michi_cc) 16 years ago
belugas 1648da0e47 (svn r13907) -Codechange: Replace a number with Colours enum on DrawFrameRect usage 16 years ago
belugas e8be25baa6 (svn r13900) -Codechange: Replace numbers with Colours enum on settings, smallmaps, stations and signs guis. 16 years ago
rubidium 5a94972c2d (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
-Codechange: remove all BindCString and related functions and replace it by RAW_STRING which prints the C-string raw pointer that is on the 'print stack'.
16 years ago
frosch cfdc710104 (svn r13649) -Codechange: Split the GfxFillRect() special flags from 'color' into their own parameter. 16 years ago
smatz 40d5242f91 (svn r13618) -Codechange: move tar-specific declarations to separate file
Removes indirect dependency on <string> and <map> for over 40 files
16 years ago
smatz e00df941fa (svn r13537) -Fix [FS#2090](r13523): QSortT won't work this way, use Dimension instead of uint16[2] for resolutions 16 years ago
rubidium e8767f730a (svn r13386) -Fix: global currency/units setting being overriden when loading a savegame. 16 years ago
rubidium d36ff6af5a (svn r13335) -Fix: remove rogue (debugging) printf. 16 years ago
rubidium e7a501100a (svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games. 16 years ago
rubidium c4c440cc20 (svn r13256) -Codechange: merge the OPTS and PATS chuncks.
-Codechange: split the diff_custom variable.
-Feature: allow changing some of the diff_custom variables via the console in network games.
16 years ago
rubidium d289464d69 (svn r13255) -Codechange: move _opt to _settings. 16 years ago
rubidium dc77647ea4 (svn r13251) -Codechange: rename _patches to _settings as that is more logic.
-Codechange: move all Settings into substructs of _settings in a way that they are logically grouped.
16 years ago
rubidium ce821b1ada (svn r13242) -Codechange: remove _opt_ptr. 16 years ago
belugas 08671d2e78 (svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
Initial concept : TTDPatch (moreairpots),  Initial code : Pasky
Thanks to BigBB (help coding), Smatz Skidd13 and frosch for bugcatches and advices
16 years ago
rubidium 162e2e074b (svn r13185) -Codechange: remove everything related to the WindowProc callbacks. 16 years ago
rubidium 78eb7d66b1 (svn r13166) -Codechange: CmdSetRoadDriveSide belongs in road_cmd.cpp, not settings_gui.cpp. 16 years ago
rubidium 6891469e87 (svn r13158) -Codechange: make a class of the GameOptionsWindow. 16 years ago
rubidium a89b5721a8 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming. 16 years ago
rubidium 045aaae1c7 (svn r13112) -Codechange: make classes of the patches and custom currency windows. 16 years ago
glx 7096f20ec5 (svn r13097) -Codechange: make a class of the GameDifficultyWindow. 16 years ago
rubidium 2c96ce4506 (svn r13027) -Codechange: use StrEmpty instead of arr[0] == '\0' and remove the need for WE_ON_EDIT_TEXT_CANCEL. 16 years ago
rubidium 0f7d925121 (svn r13024) -Codechange: do not use WE_MOUSELOOP when WE_TICK suffices, rename WE_4 to something more descriptive and correct some (completely incorrect) comments. 16 years ago
rubidium 51cda2252c (svn r13004) -Codechange: replace AllocateWindow and AllocateWindowDesc with a Window constructor. 16 years ago
rubidium 9db77e3808 (svn r12976) -Codechange: use w->SetDirty() instead of SetWindowDirty(w) when it's certain that w != NULL. 16 years ago
rubidium 8796331d83 (svn r12975) -Codechange: replace DeleteWindow(w) with delete w. 16 years ago
rubidium 1ce0b03bf0 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description. 16 years ago
belugas 24bfbc9472 (svn r12951) -Fix(r9762)[FS#1977): Revert the new difficulty settings of town and industries back to their initial values. 16 years ago
peter1138 45034bc522 (svn r12924) -Feature: Introducing the so called 'engine pool' which primarily removes the fixed engine type limits and also happens to allow (with the patch option 'dynamic_engines') multiple NewGRF vehicle sets to coexist. 16 years ago
rubidium ca1f8fbe2e (svn r12761) -Codechange: lots of minor whitespace coding style fixes around operators. 16 years ago
rubidium e61dcab79d (svn r12648) -Feature: allow four different non-stop types in a single game instead of two. The "TTDP compatible order" setting now only sets the default behaviour of new trains.
-Feature: allow three different load type in a single game instead of two. One can choose full load all and full load any instead of full load being governed by the "full load any" patch setting.
16 years ago
smatz fcf4a7067d (svn r12547) -Feature: invisibility options to make objects invisible instead of transparent 16 years ago
rubidium df1d9bd880 (svn r12490) -Codechange: rename engine.h to engine_func.h and remove unneeded inclusions of engine.h and/or replace them with engine_type.h. 16 years ago
rubidium c51b81c247 (svn r12489) -Codechange: split station.h into station_base.h and station_func.h. 16 years ago
peter1138 015cf7e6a2 (svn r12293) -Feature: Ability to change aircraft speed factor, from so
called 'realistic' (matching other vehicles) (1/1) to original TTD 
speed (1/4). Note this option defaults to original TTD speed.
17 years ago
peter1138 c05df5b051 (svn r12175) -Fix (r12174): Ensure the patches window is centred properly. 17 years ago
peter1138 d85484c637 (svn r12174) -Codechange: Make the patches window dynamically resize to the largest patch tab, so adding patch options is simply a case of adding to the lists. 17 years ago
smatz a3e3cd7d46 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick) 17 years ago
glx ec6a1776f3 (svn r12087) -Fix: MSVC warnings 17 years ago
glx dbab177422 (svn r12080) -Fix: update waypoint signs when changing language 17 years ago
maedhros f95fb570ad (svn r11994) -Codechange: Remove numbers from string names where the strings aren't present in TTD, since they don't correspond to either TTD's TextIDs or OpenTTD's StringIDs. 17 years ago
skidd13 99325b0553 (svn r11978) -Codechange: Replace some global variables with window owned ones 17 years ago
peter1138 3f11c27958 (svn r11902) -Codechange: use new dropdown widget for game options window 17 years ago
glx 4e847a9c52 (svn r11888) -Codechange: simplify sorting of the strings in town names dropdown 17 years ago
glx 2ad9edda91 (svn r11886) -Add: sort the strings in languages dropdown 17 years ago
peter1138 b4ed1609bf (svn r11884) -Cleanup: leftover use of widget numbers instead of enum 17 years ago
peter1138 1fa2285327 (svn r11848) -Codechange: New class-based drop down list functionality. Lists are now dynamically generated, and can include parameters, or be extended however needed. 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 64d691bacc (svn r11787) -Codechange: more header rewrites. This time related to viewport.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 71d4004a85 (svn r11776) -Codechange: more header splittings to reduce the dependencies. 17 years ago
rubidium 2469bca24c (svn r11771) -Codechange: split settings.h into better separated headers. 17 years ago
belugas bd9741e086 (svn r11754) -Fix(r11753): One too much command separator (;). Thanks glx for spotting 17 years ago
belugas bed549f4be (svn r11753) -Codechange: re-indent the switch case structures, as to be more code style oriented.
Hoping it makes the whole file easier to follow/read
17 years ago
belugas 975300be97 (svn r11752) -Fix(r11745): Silence a MSVC warning (glx) 17 years ago
belugas 1347ffa8cf (svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style 17 years ago
skidd13 7b6bfa5fc4 (svn r11745) -Codechange: Unify the spinner widget drawing of the difficulty settings window and make its disabled state min max aware. 17 years ago
belugas 61285721a4 (svn r11734) -Change: Allow ToggleFullScreen to return the result of the operation' attempt. Previously, only visual clues were available.
-Fix[FS#1519]: When you can not use this resolution at full screen, now you'll know that it failed.
As for the reason it did not work, each computer/OS has its reason.
17 years ago
rubidium 722613f7f3 (svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes. 17 years ago
rubidium db73addb43 (svn r11702) -Codechange: move all date related stuff to date*. 17 years ago
skidd13 bdf4cf6b19 (svn r11698) -Change: Make the abort/accept process of the difficulty window a bit less confusing
-Change: Make the highscore button in the difficulty window a bit more obvious
-Codechange: Enumify the window-widgets of the difficulty window
17 years ago
rubidium 81bf9f8503 (svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h' 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 1f6043458c (svn r11682) -Codechange: move some 'generic' geometry related types into a single file and do not include gfx.h everywhere to get a Point type. 17 years ago
rubidium 766551b0bc (svn r11677) -Codechange: move price and command related types/functions to their respective places. 17 years ago
rubidium 8427b8bad2 (svn r11675) -Codechange: split the string types from the string functions. 17 years ago
rubidium 2cf7d5b2cb (svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found. 17 years ago
rubidium 8bfbfd0031 (svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps. 17 years ago
rubidium 2b8863c846 (svn r11646) -Codechange: check whether (some) characters are missing in the current 'font' for the 'currently' chosen language and give a warning when that does happen. 17 years ago
rubidium 8ce9c5f29b (svn r11643) -Codechange: conform with the coding style for the WP macro uses. 17 years ago
rubidium 92cb0e45ca (svn r11555) -Codechange: use the new members introduced in r11551. 17 years ago
rubidium 99dbfd3866 (svn r11547) -Add: signal selection GUI for the ones that really like to use that over CTRL. Patch by BigBB. 17 years ago
skidd13 815b8d8df1 (svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style 17 years ago
skidd13 3ae50673a3 (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style 17 years ago
skidd13 c0a2c0c23e (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style 17 years ago
skidd13 98f66552be (svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style 17 years ago
rubidium 09906e3de2 (svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs. 17 years ago
belugas e2c0f1faf7 (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
Patch heavily based on BiBB's work (FS#1383)
17 years ago
rubidium 406c22d7e3 (svn r11279) -Codechange: use a typedeffed type for all magic with GameDifficulty instead on relying ints to always be 32 bits, which they are not. 17 years ago
rubidium 7350b88bf2 (svn r11188) -Codechange: rewrite of the town action related code (remove some of the magic).
-Feature: possibility to disable exclusive rights and giving money. Both by skidd13.
17 years ago
rubidium 80a3590bf5 (svn r11172) -Codechange: rewrite of town road building and addition of the possibility to clean up unconnected road bits during the local road reconstructions. Based on a patch by skidd13. 17 years ago
rubidium 3055d42fc4 (svn r11107) -Feature: some tool so one can still build tunnels under rails (and other structures) when the owner of the structure built it on foundations and if you have enough "empty" space ofcourse. One could use the tool for some other construction needs too. Patch by frosch. 17 years ago
bjarni 97135f2b7e (svn r10996) -Feature: [OSX] added more options for right click emulation (controlled from the interface tab in the patch window)
This only works with the cocoa drivers (you will use the cocoa drivers unless you manually switched to SDL and compiled yourself)
  Note: if control-click is selected, then the ingame control-click (like presignals and such) will be command-click
  Requested and tested by ln- (so he should be blamed if this goes wrong :P )
17 years ago
rubidium 13ab17bca8 (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size. 17 years ago
rubidium b8f658db94 (svn r10451) -Add: support for "prospecting" raw industries, i.e. you pay an amount of money and then it might (with a given chance) build a raw industry somewhere on the map. 17 years ago
rubidium 1cff472501 (svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting. 17 years ago
rubidium f40646bf82 (svn r10329) -Feature [FS#812]: (patch) option to select the "default" rail type when you start a new game or load a game. This is done either static, i.e. rail, electrified rail, monorail and maglev, or dynamic which takes either the first or last available railtype or the railtype that is used most on the map. 17 years ago
truelight 66a136be09 (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh) 17 years ago
maedhros 7fb6e8f11d (svn r10236) -Feature: Introduce a form of timetabling for vehicles. 17 years ago
glx 623a848cca (svn r10211) -Feature: [NewGRF] Add support for action 0F 17 years ago
rubidium 773a7c9cb6 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified. 17 years ago
rubidium 3ccc83e640 (svn r10197) -Codechange: replace int32 with CommandCost where appropriate. 17 years ago
glx a81fd98057 (svn r10037) -Fix (r10035, r10036): silence some 'may be used uninitialized' warnings 17 years ago
glx 1a7c7d768f (svn r10036) -Add: sort the strings in town names dropdown 17 years ago
peter1138 2851f58efa (svn r9962) -Feature: Add smooth viewport scrolling. This must be enabled with patch setting 'smooth_scroll' 17 years ago
maedhros 1242bb9a03 (svn r9905) -Feature: Allow building new stations adjacent to existing stations by holding down control. Based on a patch by Wolf01. 17 years ago
rubidium 8f0f090c51 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13. 17 years ago
belugas b559b8f9ff (svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
Possible patterns are : 
No Road (not available in scenario editor)
Original (for the nostalgics)
Better Roads (same as original, but based on distance of 2 tiles instead of one)
2x2 grids
3x3 grids
Patch by skiddl13
17 years ago
belugas 7de20df379 (svn r9762) -Feature: Two new difficulty settings : Very low number of towns and very low number of industries
Based on FS#289, by pitt2
17 years ago
rubidium 55a4e4f756 (svn r9741) -Fix [FS#672]: station signs were not resized when the language changed, causing overflows in the coloured sign background. 17 years ago
maedhros 97e88ca4f1 (svn r9734) -Feature: Add an option to automatically pause when starting a new game. 17 years ago
rubidium 2ce514284c (svn r9673) -Cleanup: remove spaces before tabs and replace non-indenting tabs with spaces. 17 years ago
maedhros 1a81c1cedd (svn r9667) -Feature: Add the concept of cities. A (configurable) proportion of towns can
start off larger, and will grow twice as quickly as other towns. They can also
be placed specifically in the scenario editor. Thanks to TheJosh for the
initial patch and the idea.
17 years ago
belugas 76faa0f759 (svn r9664) -Documentation: Doxygen corrections,errors and omissions 17 years ago
maedhros b7e9d97bc7 (svn r9648) -Codechange: Use HASBIT directly rather than shifting and then using it on the first bit. 17 years ago
maedhros c5354bdecc (svn r9647) -Fix (r6631) [FS#733]: Select "Custom" in the difficulty settings gui when changing a setting. (Frostregen) 17 years ago
maedhros f2a14a813a (svn r9613) -Feature: Make it possible to have some control over the town growth. The
default rate is TTD's original rate, and to approximate OpenTTD's previous
behaviour the rate should be set to "Fast" or "Very Fast". Town growth can be
switched off entirely, and if so, buildings will not be rebuilt. It is also
possible to specify a proportion of towns that grow twice as fast as the
others.
17 years ago
belugas 6a86e75870 (svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near 17 years ago
rubidium f9547cf3b2 (svn r9455) -Fix: the values for diff_custom, diff_level and snow_line in the .cfg were not properly checked. 18 years ago
bjarni e93ace0cfa (svn r9126) -Feature: "Function of scrollwheel" can now be set to off as well
Note: since this can be useful for all platforms, the GUI is no longer OSX specific.
  Note: scrolling lists is still unaffected by this setting
18 years ago
rubidium 40ebea6a6a (svn r9117) -Fix: the (current) difficulty level button was not selected when opening the difficulty window. 18 years ago
bjarni 7d498a55de (svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
It has to be enabled first (in patches->interface) first and this will disable scrollwheel zooming
  Note: patch setting "Map scrollwheel speed" might need to be changed since the "correct" setting
    appears to depend on what kind of mouse is in use (mighty mouse or touchpad)
18 years ago
rubidium 36cea84b11 (svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code). 18 years ago
truelight d893909daa (svn r9064) -Fix [FS#663]: don't keep on scrolling for non-numeric values in settings, but require reclick 18 years ago
rubidium 979ccd45ba (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {}; 18 years ago
rubidium 4169bfba06 (svn r9050) -Codechange: Foo(void) -> Foo() 18 years ago
rubidium a2999dadc9 (svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p. 18 years ago
rubidium 2a9851a3ad (svn r8511) -Codechange: make WindowClass an enumerated value. 18 years ago
maedhros e91bbdd491 (svn r8151) -Feature: Automatically build semaphores before a configurable date, which can be set by each network player seperately. 18 years ago
peter1138 ca9843424b (svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
This lets us increase the sprite width from 14 to up to 29 bits, 
effectively nulling the old sprite limit. Table changes in next commit.
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
celestar 08de6b082a (svn r8055) -Codechange: Replace the different max, dmax, maxu whatever macros by a simple template function max(), that requires two arguments of the same type. While I'm at it change a variable called "max" to "maxval" in a function that calls max(). 18 years ago
rubidium a7d0cdf95f (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