summaryrefslogtreecommitdiff
path: root/train_gui.c
AgeCommit message (Collapse)Author
2006-12-30(svn r7637) -Codechange: Change ShowQueryString to use a window pointer as a ↵Darkvater
parent. If the query has no parent (eg give money, rename waypoint), the global function HandleOnEditText is used.
2006-12-28(svn r7592) -Feature: Add support for tractive effort to 'realistic' ↵peter1138
acceleration.
2006-12-10(svn r7473) -Fix (r7269): Pass a cargo type to determine the freight weight peter1138
multiplier instead of a vehicle. Fixes incorrect display of total train capacity.
2006-12-07(svn r7415) -Codechange: Don't use typedef enum for simple widget ↵Darkvater
enumerators when we will never use their type anyways.
2006-12-03(svn r7330) -Fix (r7304): Data invalidation doesn't always happen as the local peter1138
player, resulting in an empty vehicle purchase list. Specify the player as an argument to IsEngineBuildable()
2006-12-01(svn r7317) -Fix: (r7299) warning: unused variable num_engines (peter1138)KUDr
2006-12-01(svn r7315) -Fix: Have the first engine in the list be selected once again ↵Darkvater
when the window is opened and remove a useless loop that tested if selected engine is still in list (moved to list generation).
2006-12-01(svn r7314) -Cleanup: const, whitespace, coding style and variable usage.Darkvater
2006-12-01(svn r7313) -Codechange: Calling invalidate data on a window will surely ↵Darkvater
warrant a redraw, so call that after the WE_INVALIDATE_DATA event and remove (some of) the superflouous calls.
2006-11-30(svn r7309) -Codechange: sort train engines/wagons by number first and then ↵KUDr
by custom rule
2006-11-30(svn r7304) -Codechange: Reinstate caching of sorted purchase list. Dropping ↵peter1138
from 9m to 1.5m cycles for a redraw of a full list is not frivolous.
2006-11-30(svn r7303) -Codechange: Sort wagon list as well as engine list.peter1138
2006-11-30(svn r7299) -CodeChange: Train and Aircraft Build window GUI code simplified ↵KUDr
a bit: - using one engine list instead of 3 - removed engine filters (loco, wagons, helicopters, etc.) - EngineList code isolated from GUI (moved to helpers.cpp - reusing CBlobT code which does exactly what is needed for EngineList) - removed unnecessary "optimization" (rebuild and sort engine list on each WE_PAINT)
2006-11-27(svn r7269) -Feature: Add freight trains patch option. This option is a ↵peter1138
multiplier for the weight of cargo on freight trains, to simulate longer heavier trains. The default value of 1 behaves as before.
2006-11-18(svn r7205) -Fix [FS#350, SF#1560913]: Window allocation and deletion messed ↵Darkvater
with the actual window structs inside their array, and possibly invalidating pointers higher up. Meaning that any function called within an wndproc could cause unknown/invalid pointers once control was returned to this function. Solved by the introduction of an extra abstraction layer, an array of z-window positions that is only concerned with the pointers.
2006-11-16(svn r7178) -Fix: forgotten pointer dereferences (Bjarni, Bjarni, Bjarni, ...)KUDr
2006-11-16(svn r7167) -Fix: [FS#367] Crash: engine.h:194: RailVehInfo: Assertion ↵KUDr
(reported by skidd13)
2006-11-11(svn r7129) -Codechange: Get rid of a global variable that only sets a ↵Darkvater
window's number.
2006-11-10(svn r7128) -Codechange: Replace magic numbers by magic enums (windowdesc ↵Darkvater
positioning WDP_AUTO = -1)
2006-10-24(svn r6926) -Codechange: Rename WWT_4 to WWT_TEXTBTN_2 and WWT_6 to ↵Darkvater
WWT_INSET (credits to peter1138 for the aptly found name) -Codechange: Remove the explicit numbering from WindowWidgetTypes
2006-10-24(svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL ↵Darkvater
is only plain panel, WWT_IMGBTN must contain an image for drawing. Renamed WWT_PANEL_2 to WWT_IMGBTN_2 because that is what it is. Added WWT_PUSHBTN that is either just a pushable button, or a textbutton, which text's drawn dynamically independent of widget.
2006-10-24(svn r6924) -Codechange: Give the last (in the widget arrays at least) ↵Darkvater
sprites meaningful names.
2006-10-24(svn r6920) - Codechange: Ignore refit options of an engine if it has no ↵peter1138
capacity.
2006-10-23(svn r6912) - Feature: Show a list of cargo types that a vehicle is ↵peter1138
refittable to in the purchase information window. (mart3p)
2006-10-23(svn r6911) - Codechange: Add extra space to all purchase windows (and the ↵peter1138
replace window) to allow room for more text. (mart3p)
2006-10-23(svn r6910) - Codechange: Supply width of area when drawing purchase info ↵peter1138
instead of using hardcoded values. (mart3p)
2006-10-21(svn r6884) -Codechange: Add strict bounds checking in string formatting system.Darkvater
The last parameter should point to the end of the buffer (eg lastof(buf)) Courtesy of Tron.
2006-10-20(svn r6858) - Fix (r6855): Handle rail vehicles with no capacity (N/A) by ↵peter1138
setting cargo type to CT_INVALID and handling it later. STR_8838_N_A is not a valid cargo type...
2006-10-20(svn r6855) - Codechange: When displaying a "quantity of cargo" string, use ↵peter1138
the {CARGO} command and supply the cargo type and quantity, instead of manually looking up the cargo type's string.
2006-10-17(svn r6801) - Fix (r6619): Always disable the train refit button. It will be ↵peter1138
enabled later if refitting is possible.
2006-10-17(svn r6794) - Fix: In the train detail window, split up articulated parts if ↵peter1138
they can contain cargo. This allows us to show the full cargo contents.
2006-10-12(svn r6760) -Codechange: Do a case insensitive sort of train engine names ↵Darkvater
and just normally check a boolean; no special magic needed
2006-10-12(svn r6759) -Codechange: Remove the brainheaded usage of STR_JUST_STRING to ↵Darkvater
pass a StringID
2006-10-11(svn r6737) - Codechange: Sort train engines by their NewGRF specified list ↵peter1138
position instead of plain EngineID. This brings us back the custom order that was lost when generalized sorting was introduced.
2006-10-10(svn r6716) -Code cleanup: [aircraft/train build windows] fixed a spelling ↵bjarni
mistake in the widget names (the game itself is unaffected by this)
2006-10-10(svn r6714) -Codechange: replaced a direct manipulation of windows with ↵bjarni
InvalidateWindowData() in rail_cmd.c Moved the actual modification of railtype to WE_INVALIDATE_DATA in the train depot handler -Codechange: added SetWindowDirty() to WE_INVALIDATE_DATA as it made no sense to update the list without making the window dirty
2006-10-10(svn r6712) -Code cleanup: renamed buildtrain_d to buildvehicle_d as it's ↵bjarni
used for all vehicle types
2006-10-09(svn r6709) -Fix r6679: [build train window] solved an issue that could lead ↵bjarni
to trailing empty blocks in the list array Since they were freed with the rest of the array, it only meant that we wasted a few bytes (max 16) while the window were open and we didn't leak memory
2006-10-09(svn r6707) -Feature: [build aircraft window] added buttons to view ↵bjarni
propeller planes, jet planes or helicopters -Codechange: the build aircraft window now generates 3 malleced lists and displays based on those list This is preparation for sorting aircraft
2006-10-07(svn r6684) -Feature: [train build window] added sorting options for the enginesbjarni
2006-10-07(svn r6683) -Fix: '<' signed unsigned mismatch produced by VC8KUDr
2006-10-07(svn r6681) -Fix: when vehicles never expire they will stay at peak ↵bjarni
reliability instead of the lowest to make them useful even when old -Fix: when retiring an engine design, invalidate the build windows and invalidate the build window data -Fix: mark build windows dirty when engine reliability changes
2006-10-07(svn r6680) -Codechange r6679: [train build window] only generate the list ↵bjarni
when the window data is invalidated or the window is generated, not on each redraw
2006-10-07(svn r6679) -Feature: [train build window] added filter for wagons, engines ↵bjarni
or both in the display -Codechange: [train build window] to get rid of a really ugly hack, the train build list is now generated in one loop and stored in an array
2006-10-07(svn r6678) -Code cleanup: [train build window] made an enum with widget ↵bjarni
names and fixed some incorrect indents
2006-10-05(svn r6649) - Codechange: Show more correct capacity of articulated wagons ↵peter1138
in the train purchase list.
2006-10-03(svn r6624) -Feature: added ability to add refit commands to vehicle orders ↵bjarni
(can only be done in goto depot orders) Example: make a train transport iron ore from A to B, then it visits a depot and refits to steel It then transport steel back to A or near A if there is a factory and then it visits another depot to refit to iron ore again This is controlled in the orders. If a goto depot order is lightlighted, then "Unload" changes to "Refit" Control click "Refit" removes the refit part of the order (as the tooltip says) The player will still pay the normal refit costs Known issues: If a vehicle is not in a depot, then the refit window will fail to tell refitted cargo capacity Refit costs in the refit window can sometimes print 0 when it should not because the refit calculation is unaware that the vehicle will be refitted in between Warning: autoreplace got a protection against replacing something so you get a new cargo type, but it can fail here. In the iron ore/steel example, it can see that the vehicle carries iron ore and the new one can be refitted to iron ore, then it will replace. It will not check to see that it's valid for steel as well. This is something to look into in the future
2006-10-03(svn r6619) -Codechange: Use accessors for disabled_state.belugas
Another step toward merging XTDwidget. The only two files not converted (window.h and widget.c) will be done at the very last commit)
2006-10-02(svn r6612) -Codechange: Use accessors for hidden_state.belugas
Another step toward merging XTDwidget. The only two files not converted (window.h and widget.c) will be done at the very last commit)
2006-09-28(svn r6562) -Codechange: merged the vehicle list window widget arraysbjarni
It made no sense to maintain 8 nearly identically arrays when a single one can do the job Also made the two buttons always use half of the bottom width each, even when resizing