Commit Graph

234 Commits (339a697c8aa9ef4e900c4258692c73b73dea7862)

Author SHA1 Message Date
Darkvater 616028a453 (svn r7415) -Codechange: Don't use typedef enum for simple widget enumerators when we will never use
their type anyways.
18 years ago
peter1138 00e9e3e9e6 (svn r7330) -Fix (r7304): Data invalidation doesn't always happen as the local
player, resulting in an empty vehicle purchase list. Specify the player 
as an argument to IsEngineBuildable()
18 years ago
KUDr 1b713e9182 (svn r7317) -Fix: (r7299) warning: unused variable num_engines (peter1138) 18 years ago
Darkvater efd1e877f0 (svn r7315) -Fix: Have the first engine in the list be selected once again when the window is opened
and remove a useless loop that tested if selected engine is still in list (moved to list
 generation).
18 years ago
Darkvater 8eb6ed2825 (svn r7314) -Cleanup: const, whitespace, coding style and variable usage. 18 years ago
Darkvater fc1a90b663 (svn r7313) -Codechange: Calling invalidate data on a window will surely warrant a redraw, so call
that after the WE_INVALIDATE_DATA event and remove (some of) the superflouous calls.
18 years ago
KUDr 9d2719e3d6 (svn r7309) -Codechange: sort train engines/wagons by number first and then by custom rule 18 years ago
peter1138 8a91f18058 (svn r7304) -Codechange: Reinstate caching of sorted purchase list. Dropping from 9m to 1.5m cycles for a redraw of a full list is not frivolous. 18 years ago
peter1138 058af8eb30 (svn r7303) -Codechange: Sort wagon list as well as engine list. 18 years ago
KUDr acf4891180 (svn r7299) -CodeChange: Train and Aircraft Build window GUI code simplified 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)
18 years ago
peter1138 180019aa40 (svn r7269) -Feature: Add freight trains patch option. This option is a multiplier for the weight of cargo on freight trains, to simulate longer heavier trains. The default value of 1 behaves as before. 18 years ago
Darkvater c01c294afb (svn r7205) -Fix [FS#350, SF#1560913]: Window allocation and deletion messed 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.
18 years ago
KUDr b44fce7a86 (svn r7178) -Fix: forgotten pointer dereferences (Bjarni, Bjarni, Bjarni, ...) 18 years ago
KUDr 6587db1c98 (svn r7167) -Fix: [FS#367] Crash: engine.h:194: RailVehInfo: Assertion (reported by skidd13) 18 years ago
Darkvater 73b8d80036 (svn r7129) -Codechange: Get rid of a global variable that only sets a window's number. 18 years ago
Darkvater e786cd5c6b (svn r7128) -Codechange: Replace magic numbers by magic enums (windowdesc positioning WDP_AUTO = -1) 18 years ago
Darkvater 02a6df391d (svn r6926) -Codechange: Rename WWT_4 to WWT_TEXTBTN_2 and WWT_6 to WWT_INSET (credits to peter1138
for the aptly found name)
-Codechange: Remove the explicit numbering from WindowWidgetTypes
18 years ago
Darkvater c7c65ce6d5 (svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL 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.
18 years ago
Darkvater 13df23c586 (svn r6924) -Codechange: Give the last (in the widget arrays at least) sprites meaningful names. 18 years ago
peter1138 e965ac67b3 (svn r6920) - Codechange: Ignore refit options of an engine if it has no capacity. 18 years ago
peter1138 6b3abe6508 (svn r6912) - Feature: Show a list of cargo types that a vehicle is refittable to in the purchase information window. (mart3p) 18 years ago
peter1138 259cad1985 (svn r6911) - Codechange: Add extra space to all purchase windows (and the replace window) to allow room for more text. (mart3p) 18 years ago
peter1138 4c11b5aef5 (svn r6910) - Codechange: Supply width of area when drawing purchase info instead of using hardcoded values. (mart3p) 18 years ago
Darkvater 494c56475f (svn r6884) -Codechange: Add strict bounds checking in string formatting system.
The last parameter should point to the end of the buffer (eg lastof(buf))
 Courtesy of Tron.
18 years ago
peter1138 53f8e99169 (svn r6858) - Fix (r6855): Handle rail vehicles with no capacity (N/A) by setting cargo type to CT_INVALID and handling it later. STR_8838_N_A is not a valid cargo type... 18 years ago
peter1138 68dda86c5b (svn r6855) - Codechange: When displaying a "quantity of cargo" string, use the {CARGO} command and supply the cargo type and quantity, instead of manually looking up the cargo type's string. 18 years ago
peter1138 813b67312a (svn r6801) - Fix (r6619): Always disable the train refit button. It will be enabled later if refitting is possible. 18 years ago
peter1138 26a91c55c7 (svn r6794) - Fix: In the train detail window, split up articulated parts if they can contain cargo. This allows us to show the full cargo contents. 18 years ago
Darkvater c0d2598ce4 (svn r6760) -Codechange: Do a case insensitive sort of train engine names and just normally
check a boolean; no special magic needed
18 years ago
Darkvater bc20a1539a (svn r6759) -Codechange: Remove the brainheaded usage of STR_JUST_STRING to pass a StringID 18 years ago
peter1138 a43bdefc28 (svn r6737) - Codechange: Sort train engines by their NewGRF specified list position instead of plain EngineID. This brings us back the custom order that was lost when generalized sorting was introduced. 18 years ago
bjarni 239991944d (svn r6716) -Code cleanup: [aircraft/train build windows] fixed a spelling mistake in the widget names (the game itself is unaffected by this) 18 years ago
bjarni 3dfe48b189 (svn r6714) -Codechange: replaced a direct manipulation of windows with 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
18 years ago
bjarni cea27e2622 (svn r6712) -Code cleanup: renamed buildtrain_d to buildvehicle_d as it's used for all vehicle types 18 years ago
bjarni d620997bb3 (svn r6709) -Fix r6679: [build train window] solved an issue that could lead 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
18 years ago
bjarni 306178e0b3 (svn r6707) -Feature: [build aircraft window] added buttons to view 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
18 years ago
bjarni c362b3e919 (svn r6684) -Feature: [train build window] added sorting options for the engines 18 years ago
KUDr 64c0fe7e99 (svn r6683) -Fix: '<' signed unsigned mismatch produced by VC8 18 years ago
bjarni 2bb7f1da6c (svn r6681) -Fix: when vehicles never expire they will stay at peak 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
18 years ago
bjarni bc1070654a (svn r6680) -Codechange r6679: [train build window] only generate the list when the window data is invalidated or the window is generated, not on each redraw 18 years ago
bjarni e1ad1102f2 (svn r6679) -Feature: [train build window] added filter for wagons, engines 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
18 years ago
bjarni 1aa41be3e2 (svn r6678) -Code cleanup: [train build window] made an enum with widget names and fixed some incorrect indents 18 years ago
peter1138 e713754f63 (svn r6649) - Codechange: Show more correct capacity of articulated wagons in the train purchase list. 18 years ago
bjarni 71ca65588c (svn r6624) -Feature: added ability to add refit commands to vehicle orders (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
18 years ago
belugas cf210fdf6b (svn r6619) -Codechange: Use accessors for disabled_state.
Another step toward merging XTDwidget.
The only two files not converted (window.h and widget.c) will be done at the very last commit)
18 years ago
belugas f5ee5bdb0e (svn r6612) -Codechange: Use accessors for hidden_state.
Another step toward merging XTDwidget.
The only two files not converted (window.h and widget.c) will be done at the very last commit)
18 years ago
bjarni 1f2ed9d731 (svn r6562) -Codechange: merged the vehicle list window widget arrays
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
18 years ago
bjarni 502e6d4c7f (svn r6518) -Codechange: unified the vehicle refit windows
This was requested by peter1138
18 years ago
bjarni 40eecb3391 (svn r6513) -Codechange: unified the code to draw depot windows
This change is intended to make it easier to make depot behaviour consistent
   and faster to code when adding more features in the future
   The user interface should hopefully not be affected by this
18 years ago
bjarni b0101164e4 (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
This will ensure that you can always get the same list when checking for vehicles in a depot (no need to duplicate code for each place, that needs such a list)
   Since the vehicles are only looped once for each redraw, drawing speed is around twice as fast (measured to be 114%-121% faster depending on the number of vehicles in the game)
18 years ago