Commit Graph

6683 Commits (a6cbf0d419569989d54f6df37232e9e771acafa8)

Author SHA1 Message Date
rubidium fefc880971 (svn r16924) -Fix (r16922): selling or sending to depot, what's the difference? :) 15 years ago
rubidium f48cc9d4bf (svn r16923) -Codechange: move Cmd*Buoy* to waypoint_cmd.cpp and make them behave more like waypoints, e.g. reuse station signs of recently deleted buoys 15 years ago
rubidium b04ba7dcea (svn r16922) -Codechange: unduplicate some vehicle CMD_*s and move the setting of the error message to a single place 15 years ago
rubidium 9980af2898 (svn r16921) -Codechange: make it more clear what strings are related to road vehicles; only ROAD isn't always enough. Also unify the way of writing it. 15 years ago
rubidium 2962d8f0fc (svn r16920) -Codechange: shuffle some strings around to simplify looking up vehicle type specific strings for a specific message 15 years ago
rubidium c17c31b5b6 (svn r16919) -Codechange: unify some more StringID w.r.t. their naming 15 years ago
translators 9aaec4d2f2 (svn r16918) -Update from WebTranslator v3.0:
catalan - 1 changes by arnaullv
czech - 71 changes by SmatZ
dutch - 8 changes by Yexo
english_US - 5 changes by agenthh
esperanto - 3 changes by LaPingvino
finnish - 4 changes by jpx_
german - 4 changes by planetmaker
norwegian_bokmal - 136 changes by CyberKenny
persian - 127 changes by 100ra
romanian - 1 changes by kkmic
russian - 9 changes by Lone_Wolf, MajestiC
spanish - 5 changes by Terkhen
ukrainian - 1 changes by Madvin
15 years ago
rubidium 3bcfa7c52a (svn r16917) -Codechange: fix some GCC 4.5 'case X is not in enum Y' warnings 15 years ago
smatz 13a7c550ad (svn r16916) -Fix (r16909): station acceptance was reset after game load 15 years ago
rubidium 5f3a097b86 (svn r16915) -Fix (r16909): signal updates didn't propagate through waypoints 15 years ago
rubidium 6e3d999dce (svn r16914) -Codechange: split Station and BaseStation into different files 15 years ago
alberth da9d9a27fe (svn r16913) -Codechange: Signal, train depot, and waypoint windows switched to using nested widget tree. 15 years ago
rubidium cb0409fe52 (svn r16912) -Codechange: split waypoint.h in waypoint_base.h and waypoint_func.h 15 years ago
rubidium df9941f729 (svn r16910) -Update: remove removed strings from the other language files 15 years ago
rubidium 68ead6b84f (svn r16909) -Fix [FS#2996]: NewGRF stations would be triggering assertions all over the place when using the more advanced station types.
-Change: make (rail) waypoints sub classes of 'base stations', make buoys waypoints and unify code between them where possible.
15 years ago
rubidium 2646a99d29 (svn r16908) -Codechange: s/DepotWaypointReservation/DepotReservation/ 15 years ago
rubidium 8405d7d7e7 (svn r16907) -Codechange: make a more clear distinction between reservation functions that return a bool and that return TrackBits; GetRailStationReservation vs GetRailwayStationReservation, which one returns the bool and which one the TrackBits? 15 years ago
alberth 8083d67780 (svn r16906) -Fix (r12939): Child windows of build toolbars were placed inconsistently. 15 years ago
translators 639a829f87 (svn r16903) -Update from WebTranslator v3.0:
simplified_chinese - 2 changes by Gavin
danish - 5 changes by Bjarni
dutch - 1 changes by habell
finnish - 17 changes by jpx_
hungarian - 1 changes by alyr
italian - 1 changes by lorenzodv
korean - 1 changes by darkttd
russian - 15 changes by Lone_Wolf
serbian - 90 changes by BlueEyedFiend
welsh - 24 changes by welshdragon
15 years ago
rubidium f7b3067fb3 (svn r16901) -Fix [FS#3046] (rpbs): when marking trains stuck don't reset the unload counter/stuck when the vehicle is unloading. It'll be automatically reset once the vehicle wants to leave the station 15 years ago
rubidium 0658d6cb3d (svn r16900) -Codechange: prepare the waypoint window for buoys 15 years ago
frosch f09df64608 (svn r16899) -Fix (r16896): Missing 'return'. 15 years ago
alberth 4ba0e2301a (svn r16898) -Codechange: Station build window uses nested widget tree. 15 years ago
rubidium ed5ced71c8 (svn r16897) -Codechange: use the 'generic' station spec to station allocation for waypoints too 15 years ago
rubidium 43eda3dfbf (svn r16896) -Codechange: make station spec allocation and station animation functions work for both stations and waypoints 15 years ago
alberth c63338cd81 (svn r16895) -Codechange: Build dock window uses nested widget tree. 15 years ago
frosch d5a4c89365 (svn r16894) -Codechange: Add [Specialised]Vehicle::Last(). 15 years ago
alberth e3752f3ef8 (svn r16893) -Codechange: Ship depot build window uses nested widget tree. 15 years ago
alberth 03abe67e88 (svn r16892) -Codechange: Add support for nested widget tree windows to PickerWindowBase. 15 years ago
alberth 2a5784c53d (svn r16891) -Codechange: Docks toolbar uses nested widget tree. 15 years ago
alberth 1978c7dc87 (svn r16890) -Codechange: Allow raising and enabling/disabling of widgets even if they are not used. 15 years ago
translators 38d88f10fe (svn r16889) -Update from WebTranslator v3.0:
danish - 40 changes by silentStatic
french - 1 changes by glx
galician - 37 changes by Condex
german - 1 changes by planetmaker
russian - 17 changes by Lone_Wolf
serbian - 2 changes by BlueEyedFiend
15 years ago
rubidium 2ca679f5a9 (svn r16888) -Fix (r16864): crash when trying to build (some?) NewGRF waypoints 15 years ago
rubidium 87dba11ca1 (svn r16887) -Fix (r16884): erroneous semicolon. 15 years ago
rubidium e3053660c6 (svn r16886) -Codechange: unify naming of some string IDs related to string codes and group them logically 15 years ago
rubidium dc943b35e0 (svn r16885) -Codechange: reduce (string) duplication with vehicle lists 15 years ago
frosch 7b92d9efe4 (svn r16884) -Codechange: Add Train::GetFirstEnginePart() and use it. 15 years ago
translators 3999dbe7f7 (svn r16883) -Update from WebTranslator v3.0:
simplified_chinese - 5 changes by Gavin
traditional_chinese - 4 changes by ww9980
russian - 12 changes by Lone_Wolf
slovak - 7 changes by James
15 years ago
alberth a9474bf032 (svn r16882) -Codechange: Introduce a line_height variable in the station picker window. 15 years ago
rubidium 21921441d0 (svn r16881) -Codechange: fix some naming inconsistencies w.r.t. strings used in the vehicle list GUIs. 15 years ago
rubidium 42e1bdacbc (svn r16880) -Codechange: replace magic numbers with their enums and use a clearer variable name than 'flag' in the station naming function. 15 years ago
alberth d509ad3213 (svn r16879) -Codechange: Use coordinates of widgets for custom rendering. 15 years ago
alberth 3361602f1b (svn r16878) -Codechange: Let WWT_LABEL widgets do the drawing rather than OnPaint. 15 years ago
smatz af13707e00 (svn r16877) -Codechange: use Subsidy::IsAwarded() instead of testing subsidy's age 15 years ago
rubidium 3fcfb9b248 (svn r16876) -Codechange: add helper functions to cast to Station/Waypoint with some extra checks. 15 years ago
translators 73453e61d6 (svn r16875) -Update from WebTranslator v3.0:
simplified_chinese - 46 changes by EraserKing, Gavin
indonesian - 5 changes by prof
russian - 18 changes by Lone_Wolf
ukrainian - 2 changes by nsergiy
15 years ago
frosch d3a95e9bbd (svn r16874) -Change: Give the number behind free wagon chains in depots the same meaning as for trains. 15 years ago
alberth eed8b07d69 (svn r16873) -Codechange: Terraform window and scenario landscape editing window switched to nested widgets. 15 years ago
frosch e8c2992ae6 (svn r16872) -Codechange: Add RoadVehicle::GetDisplayImageWidth and simplify DrawRoadVehImage. 15 years ago
alberth 36576371c0 (svn r16871) -Codechange: Generalize GetWidgetContentSize to UpdateWidgetSize for better control over widget size and resize steps. 15 years ago
rubidium 2b374824dc (svn r16870) -Codechange: unmagicify road stop/waypoint picker drawing 15 years ago
rubidium 861a2163f6 (svn r16869) -Codechange: make drawing waypoints a tiny bit more like drawing stations 15 years ago
rubidium 8c17c6cb2b (svn r16868) -Codechange: unify UpdateAll[Station|Waypoint]VirtCoords 15 years ago
frosch f129634f52 (svn r16867) -Feature(ette): Turn variable 0E/8E (vertical offset for trains in depot) and variable 1E/9E bit 3 (wagon width in depot) into grf-local variables. 15 years ago
yexo 82ac703e2d (svn r16866) -Fix (r16865): forgot to run squirrel_export.sh 15 years ago
yexo 38768d0ca2 (svn r16865) -Doc [NoAI] [FS#3037]: replace old exception names with current ones and fix a type in the noai documentation (patch by Chruker) 15 years ago
rubidium 4e5af51d1f (svn r16864) -Codechange: make Waypoints a subclass of BaseStation. 15 years ago
rubidium d8f16ea199 (svn r16863) -Codechange: GetWaypointByTile -> Waypoint::GetByTile, like used for e.g. stations 15 years ago
rubidium c9cab7ba19 (svn r16862) -Codechange: make waypoints use the same system of station station spec lists. 15 years ago
rubidium 72d6c3a9ad (svn r16861) -Codechange: move a few more bits from station to basestation (to be shared with waypoints) 15 years ago
rubidium 06ea681b5f (svn r16860) -Codechange: introduce a helper to assign a station spec to Waypoints 15 years ago
rubidium 84df3ba2b4 (svn r16859) -Codechange: split the Station struct into two so parts of it can be reused for Waypoints. 15 years ago
translators 869fb4fa78 (svn r16858) -Update from WebTranslator v3.0:
simplified_chinese - 1 changes by Gavin
indonesian - 1 changes by prof
russian - 16 changes by Lone_Wolf
15 years ago
smatz 57d3d4ce5e (svn r16857) -Fix [FS#3036](r16652): crash when train partially in depot crashed 15 years ago
alberth b9cf3f880b (svn r16856) -Fix: Allow the rail toobar window to align vertically for larger sprites. 15 years ago
rubidium 9933df9d89 (svn r16855) -Codechange: remove unused 'conversion' stuff from the waypoint struct and make it more similar to Station. 15 years ago
rubidium a007d609af (svn r16854) -Fix (r2046): savegames from before this version would get the town id as their 'index' (#<num). For stations with custom names that custom name would be dropped and the lowest 6 bits of the StringID would be used for the 'index'. In other words, it resulted in a mess. 15 years ago
smatz f16314d0cc (svn r16853) -Codechange: make CargoSpec const at two places 15 years ago
smatz 77d13eae61 (svn r16852) -Codechange: use FOR_ALL_CARGOSPECS for iterating over all valid CargoSpecs 15 years ago
rubidium 665fa7f9c1 (svn r16851) -Codechange: use StationSpecList in waypoint too 15 years ago
rubidium dea1144bcb (svn r16850) -Codechange: unify some naming of variables between waypoints and stations. 15 years ago
smatz 1f29e38b83 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get() 15 years ago
alberth b6889daf8d (svn r16848) -Fix: Trying to reduce a nested widget window further than the smallest alowed size should not crash the game. 15 years ago
translators 539480e845 (svn r16847) -Update from WebTranslator v3.0:
esperanto - 5 changes by tradukanto
norwegian_bokmal - 58 changes by CyberKenny
russian - 4 changes by Lone_Wolf
15 years ago
rubidium b4253a94f2 (svn r16846) -Codechange: make the content download status window only use nested widgets 15 years ago
alberth d0a47fc1b4 (svn r16845) -Codechange: Introduction of constants for describing the bits in a WWT_MATRIX data field. 15 years ago
alberth 3cba03c5eb (svn r16844) -Doc (r13182): Remove documentation of removed window event handling function. 15 years ago
alberth c00ce64458 (svn r16843) -Codechange: More documentation for the WWT_MATRIX widget, and better variable names in matrix rendering function. 15 years ago
rubidium 594070194f (svn r16842) -Cleanup: add some spaces around a few operators 15 years ago
rubidium fd589b90e8 (svn r16841) -Cleanup: spaces/tabs where they don't belong 15 years ago
alberth 6767a59827 (svn r16840) -Codechange: Small merge in town directory widget content method. 15 years ago
alberth 99215c5010 (svn r16839) -Codechange: Remove obsolete FillNestedArray(). 15 years ago
alberth 9be387761c (svn r16838) -Codechange: Fill Window::nested_array in SetupSmallestSize. 15 years ago
alberth 92206f2d18 (svn r16837) -Codechange: Collect largest used index while constructing nested widget tree. 15 years ago
yexo f085d7775b (svn r16834) -Fix [FS#3034]: call the AI Save() function only once so AIs can't crash OpenTTD 15 years ago
translators 91a6af688e (svn r16833) -Fix: WT3 made its first bug .. it is growing up! 15 years ago
translators 4a18ddebc8 (svn r16832) -Update from WebTranslator v3.0:
simplified_chinese - 54 changes by Gavin
german - 4 changes by Araxiel
korean - 31 changes by telk5093
brazilian_portuguese - 2 changes by Tucalipe
russian - 26 changes by Lone_Wolf, Unknown
15 years ago
alberth f1303f1ae8 (svn r16831) -Fix (r16798): Stickybox is in the header and resizebox in the footer of the window. 15 years ago
translators ea1454d694 (svn r16829) -Update from WebTranslator v3.0:
arabic_egypt - 46 changes by kasakg
simplified_chinese - 1 changes by Gavin
esperanto - 205 changes by tradukanto
german - 1 changes by planetmaker
greek - 4 changes by kinglee
korean - 201 changes by darkttd, telk5093
russian - 28 changes by Lone_Wolf
serbian - 89 changes by etran
15 years ago
rubidium 6f0d8acf55 (svn r16828) -Codechange: attempt at making OSX compile with the 10.6 SDK too; no guarantees ofcourse... 15 years ago
rubidium e3c7a77b40 (svn r16827) -Codechange: make OSX specific files include stdafx.h always as the first file. Also unify OSX specific stuff into osx_stdafx.h and remove unused includes. 15 years ago
rubidium 2b1c43f81f (svn r16825) -Codechange: unify dirtying when updating the viewport signs. 15 years ago
rubidium e067d4a4b8 (svn r16821) -Codechange: unify the naming of type::UpdateVirtCoord and UpdateAll[Type]VirtCoords. 15 years ago
smatz db63e1ad82 (svn r16820) -Codechange: remove unused parameter in HandleCloneVehClick() 15 years ago
frosch 8041d37973 (svn r16819) -Fix (r4868): Use the palette of the vehicle being drawn instead of the one of the front vehicle. 15 years ago
frosch db69c343f1 (svn r16818) -Feature(ette): Highlight whole articulated vehicles in traindepot instead of only the first part. 15 years ago
frosch 3973b1e7cb (svn r16817) -Codechange: Scroll depots horizontally in pixels instead of 1/8 vehicle length. 15 years ago
translators 3922860bb9 (svn r16816) -Update from WebTranslator v3.0:
galician - 229 changes by Condex
indonesian - 1 changes by prof
korean - 2 changes by darkttd
polish - 18 changes by mysteq
russian - 10 changes by Lone_Wolf
15 years ago
rubidium 463b96a746 (svn r16815) -Fix: reduce the toolbar's priority for handling keypresses from most important to least important, so e.g. the order windows' 'd' skips to the next order 15 years ago
smatz b6960e4e17 (svn r16814) -Codechange: make IsNormalAircraft() member of Aircraft 15 years ago
smatz 868c21cbcc (svn r16813) -Codechange: make IsEngineCountable() member of Vehicle 15 years ago
rubidium bb9fee178d (svn r16811) -Change: introduce a plural 'rule' for Korean 15 years ago
smatz 95c7993451 (svn r16809) -Fix [FS#3021](r13096): automatic resizing of SelectCompanyLiveryWindow wasn't working as expected 15 years ago
smatz aa7bcb1259 (svn r16808) -Fix (r16338): don't crash when loading savegame with invalid references 15 years ago
peter1138 a67f861d55 (svn r16805) -Codechange: Remove 'unused' mixer channel flags, which always had the same value. 15 years ago
rubidium 2547ba9517 (svn r16802) -Fix [FS#3031]: service orders didn't behave like conditional orders; if a train doesn't need service it didn't completely skip the order, it would first send the vehicle towards the depot and would then realise it doesn't need to go there making it possible that the vehicle leaves that station on the wrong side. 15 years ago
rubidium be56fa3217 (svn r16801) -Fix [FS#3022]: cargo payments weren't destroyed when a vehicle was destructed. This only happened when you crashed a vehicle while it was unloading. 15 years ago
translators 7ca86b8b62 (svn r16800) -Update from WebTranslator v3.0:
simplified_chinese - 29 changes by ww9980
galician - 108 changes by Condex
german - 2 changes by Roujin
indonesian - 3 changes by prof
korean - 5 changes by telk5093
romanian - 2 changes by kkmic
russian - 28 changes by Lone_Wolf
15 years ago
frosch 78eccd05be (svn r16799) -Codechange: When drawing articulated road vehicles in the vehicle details window, draw as many parts as the window fits instead of always up to a vehicle length of 80/8. 15 years ago
alberth 9efd32d13c (svn r16798) -Fix [FS#3016]: Added several new widget distances for better widget size computations. 15 years ago
alberth c94c18fc0a (svn r16797) -Codechange: Allow drop-down menus for windows with nested widgets. 15 years ago
alberth e3f4293401 (svn r16796) -Fix [FS#3030]: Closebox 'X' is a string. (Rubidium) 15 years ago
rubidium b5b743bcba (svn r16795) -Fix [FS#3025]: houses wouldn't get build on the map edge. 15 years ago
yexo fff3bae83d (svn r16794) -Fix (r16752): setting coverage area highlight in the airport selection window didn't take effect immediatly 15 years ago
translators 9a1f3d281b (svn r16793) -Update from WebTranslator v3.0:
portuguese - 102 changes by SupSuper
russian - 3 changes by Lone_Wolf
spanish - 11 changes by Terkhen
15 years ago
rubidium 86768da0f6 (svn r16791) -Codechange: unify (and document) the Remove[StationType] functions. 15 years ago
yexo b58001f695 (svn r16790) -Add [NoAI]: AIVehicle::GetReliability to get the current reliability of vehicles 15 years ago
yexo 4843b3c45d (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows. 15 years ago
yexo 58ee544cff (svn r16788) -Fix: with modified_catchment off the build road station window would not display all possible cargos in the Accepts/Supplies lists 15 years ago
yexo 024a2eeed5 (svn r16787) -Fix [FS#3027]: the noise level text in the airport build window was drawn over the lowest button 15 years ago
yexo abc4f9b9a0 (svn r16786) -Fix [FS#3027] (r16752): only one tile was selected when the build airport window was opened instead of an area with the size of the airport 15 years ago
rubidium 3b8d0621a2 (svn r16785) -Codechange: make ships going to buoys use OT_GOTO_WAYPOINT too 15 years ago
peter1138 c654dedb28 (svn r16784) -Fix: Audio playback rate was fixed at 11025Hz regardless of the rate specified to the audio driver, resulting in incorrect playback speed. It is still preferable to use 11025Hz output rate if possible as OpenTTD's sample rate converter is very low quality. 15 years ago
rubidium 1c1b6da4a3 (svn r16783) -Change: make it more clear that the squirrel_export script needs gawk. 15 years ago
translators 97247c1bca (svn r16782) -Update from WebTranslator v3.0:
catalan - 33 changes by arnaullv
dutch - 2 changes by habell
french - 2 changes by belugas
galician - 18 changes by Condex
german - 8 changes by Roujin
hungarian - 11 changes by alyr
italian - 2 changes by lorenzodv
persian - 67 changes by Gajet9
russian - 48 changes by Lone_Wolf
spanish - 27 changes by Terkhen
swedish - 1 changes by Chrill
15 years ago
rubidium 24305a68ee (svn r16781) -Fix [FS#3026] (r16297): don't cast negative values to uints when the settings' range is "negative..positive". 15 years ago
alberth bc32b7dc4c (svn r16780) -Add [FS#3015]: Allow the AI Debug Window to become sticky. 15 years ago
alberth 1d8e4a48b4 (svn r16779) -Fix: Take real smallest size of nested widgets into account for initial window position. 15 years ago
alberth 7f851505f9 (svn r16778) -Codechange: Split window initialization in a data part and a size/position part. 15 years ago
translators 606648b5d1 (svn r16777) -Update from WebTranslator v3.0:
catalan - 65 changes by arnaullv
simplified_chinese - 4 changes by ww9980
finnish - 2 changes by jpx_
german - 65 changes by Roujin
icelandic - 4 changes by baldur
russian - 2 changes by svgr
spanish - 61 changes by Terkhen
vietnamese - 1 changes by sephiroth2m
15 years ago
rubidium 113f5b402d (svn r16773) -Fix (r16014): forgot to remove obsoleted aliases 15 years ago
rubidium 741a340b8b (svn r16772) -Fix [FS#3019]: don't use the same error message for turning around road vehicles and flipping parts of trains in the depot 15 years ago
rubidium 16e207f78b (svn r16771) -Fix: API export was forgotten causing API to think variables were uint; doesn't matter much as int was converted to uint and then back. 15 years ago
translators 07924a47d0 (svn r16768) -Update from WebTranslator v3.0:
german - 2 changes by planetmaker
persian - 38 changes by Gajet9
romanian - 10 changes by kkmic
serbian - 93 changes by etran
slovak - 2 changes by James
vietnamese - 68 changes by sephiroth2m
15 years ago
yexo 369d4ce179 (svn r16767) -Fix [NoAI] (r16524): AITile::GetCargoProduction/Acceptance didn't accept a radius of 0 anymore 15 years ago
rubidium 9ae07bba85 (svn r16766) -Codechange: remove station->MarkDirty. It is in all cases meant to only update the sign and not invalidate the widget; the widget would be invalidated by a call before/after the call to MarkDirty or it wouldn't make sense because e.g. the window doesn't exist anymore/yet. 15 years ago
rubidium 3fb1506d6d (svn r16765) -Codechange: give ViewportSign's width_1 and width_2 more self explaining names 15 years ago
rubidium 8275a98e1f (svn r16764) -Codechange: unify the way viewport signs are marked dirty 15 years ago
rubidium 2d907d902a (svn r16763) -Add: initial translation of Vietnamese. 15 years ago
translators ad1925432f (svn r16762) -Update from WebTranslator v3.0:
dutch - 1 changes by Yexo
finnish - 32 changes by jpx_
german - 47 changes by Roujin, planetmaker
indonesian - 16 changes by fanioz
russian - 6 changes by Lone_Wolf
15 years ago
rubidium 3086383cdc (svn r16761) -Codechange: make UpdateViewportSignPos(ition) a class function of ViewportSign 15 years ago
rubidium fbb2fb9720 (svn r16760) -Codechange: make UpdateStationVirtCoord a function of Station 15 years ago
rubidium e26e7c4731 (svn r16759) -Codechange: some coding style in station.cpp 15 years ago
rubidium b350c5faef (svn r16758) -Document: some station related types/enums 15 years ago
rubidium 2fcb588c87 (svn r16757) -Fix [FS#3018]: in the refit window the "Select cargo type to carry" line always showed the ship refit tooltip 15 years ago
translators 6048aecb3c (svn r16756) -Update from WebTranslator v3.0:
finnish - 82 changes by jpx_
german - 2 changes by planetmaker
korean - 144 changes by darkttd, telk5093
malay - 3 changes by Syed
russian - 28 changes by Lone_Wolf
15 years ago
yexo 1cf14caee0 (svn r16755) -Codechange: apply some codestyle to newgrf.cpp 15 years ago
translators ed549f7563 (svn r16754) -Update from WebTranslator v3.0:
arabic_egypt - 2 changes by kasakg
traditional_chinese - 64 changes by josesun
german - 4 changes by planetmaker
persian - 2 changes by Gajet9
15 years ago
yexo da5d63e260 (svn r16753) -Fix (r16740): Don't check the width of the same string 4 times, but pick the maximum width of all difficulty levels 15 years ago
yexo 96201f1a41 (svn r16752) -Codechange: Remove most of the window-changing code from AirportPickerWindow::OnPaint 15 years ago