New map features

Forum for technical discussions regarding development. If you have a general suggestion, problem or comment, please use one of the other forums.

Moderator: OpenTTD Developers

Post Reply
User avatar
cirdan
Director
Director
Posts: 539
Joined: 07 Apr 2007 18:08

Re: New map features

Post by cirdan »

wallyweb wrote:
cirdan wrote:...the attached patch should fix it.
Thanks for the quick fix. :bow:
Thanks for helping make the patch better.
Supercheese wrote:Seems to work better. Trunk keeps soldiering ahead, I don't envy the task of attempting to bump patches to the head revision when Cargodist was committed in the intervening revisions!
I do not expect much trouble when rebasing past CargoDist; in fact, any serious conflict would mean that something is very wrong on either side. The reason I have not rebased against trunk yet, as I usually do, is that I am currently busy trying to get rid of bitstuffing in command arguments, and I have experimental ideas spread across 8 different work branches--not the best of situations to attempt a rebase.
User avatar
AlexG
Traffic Manager
Traffic Manager
Posts: 136
Joined: 04 Apr 2011 07:27
Location: Cluj Napoca

Re: New map features

Post by AlexG »

I have all the patience needed, it's just an informational question :roll:
When it will be released the next update and what major features it will have ?

(I'm planing an project and the start date is from 1st October and I wish to know if I will use the same version of ottd nmf or I'll wait a couple of days for the next one)

Thank you!
User avatar
cirdan
Director
Director
Posts: 539
Joined: 07 Apr 2007 18:08

Re: New map features

Post by cirdan »

I cannot really say when a new update will be released. I am currently reworking some internals of the command system, which is turning out to be much more work than I anticipated, and it will not show in gameplay at all, so the next release will probably have no new features whatsoever--even worse, it is likely to be less stable.

On the other hand, I have found a couple of bugs in my last release, so I may do a bugfix-only update before moving forward. It would be the same patch as last time, against the same revision, only that with fewer bugs.

Then there is the problem of rebasing against trunk. Not that I expect it to be hard, but trunk has seen (at least) a savegame bump since my last patch, so savegame compatibility will break when I rebase. Of course, I warned about this at the beginning of the thread, but then the patch is much more mature now, and I have to think about its future.

By the way, if you are using this patch, or plan to use it, I would appreciate if you shared your experience. Reporting bugs is the simplest way, but saying that you did not find any, if that is the case, or suggesting improvements is also welcome.
User avatar
AlexG
Traffic Manager
Traffic Manager
Posts: 136
Joined: 04 Apr 2011 07:27
Location: Cluj Napoca

Re: New map features

Post by AlexG »

Thanks for the fast reply!
I will report everything that I encounter using your version of ottd :wink: cause I like this one (especially for letting me, using x number of newGRF) and I think it's the best for long games.

I will start playing from 1st October (maximum 1 week later than this date), hoping with the new update (less buggier :D ) (and hoping that importing savegame to newer version will work for me)

One last question, it is possible to implement departure boards or 24h time in the future?
User avatar
Lord Aro
Tycoon
Tycoon
Posts: 2369
Joined: 25 Jun 2009 16:42
Location: Location, Location
Contact:

Re: New map features

Post by Lord Aro »

Any step closer to trunk is a good thing in my book :)
Sadguardian wrote:One last question, it is possible to implement departure boards or 24h time in the future?
I hope not, as neither of those patches have anything to do with the new map array - this isn't a 'patchpack', it's an implementation of the map array and some patches that go with that (custom bridgeheads, etc)
AroAI - A really feeble attempt at an AI

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. --Edsger Dijkstra
User avatar
MasterMeNL
Engineer
Engineer
Posts: 86
Joined: 12 Oct 2012 17:16
Location: Netherlands

Re: New map features

Post by MasterMeNL »

You deserve a medal! This patch rocks! :bow:
Time for merge it with some other patches I like!

So I tried updating the patch myself, but it looks like it relies on some renamed/removed parts of OpenTTD or something like that.

This is the log that Visual Studio 2012 gives me, I can upload all the code I patched so far if requested.

Code: Select all

1>------ Build started: Project: version, Configuration: Debug Win32 ------
2>------ Skipped Build: Project: generate, Configuration: Debug Win32 ------
2>Project not selected to build for this solution configuration 
3>------ Build started: Project: settings, Configuration: Debug Win32 ------
1>  Microsoft (R) Windows Script Host Version 5.8
1>  Copyright (C) Microsoft Corporation. All rights reserved.
1>  
4>------ Build started: Project: openttd, Configuration: Release Win32 ------
4>  airport.cpp
4>  animated_tile.cpp
4>  articulated_vehicles.cpp
4>  autoreplace.cpp
4>  bmp.cpp
4>  cargoaction.cpp
4>  cargomonitor.cpp
4>  cargopacket.cpp
4>  cargotype.cpp
4>  cheat.cpp
4>  command.cpp
4>  console.cpp
4>  console_cmds.cpp
4>  crashlog.cpp
4>  currency.cpp
4>  date.cpp
4>  debug.cpp
4>  dedicated.cpp
4>  depot.cpp
4>  driver.cpp
4>  economy.cpp
4>  effectvehicle.cpp
4>  elrail.cpp
4>  engine.cpp
4>  fileio.cpp
4>  fios.cpp
4>  fontcache.cpp
4>  fontdetection.cpp
4>  base_consist.cpp
4>  gamelog.cpp
4>  genworld.cpp
4>  gfx.cpp
4>  gfxinit.cpp
4>  gfx_layout.cpp
4>  goal.cpp
4>  ground_vehicle.cpp
4>  heightmap.cpp
4>  highscore.cpp
4>  hotkeys.cpp
4>  ini.cpp
4>  ini_load.cpp
4>  landscape.cpp
4>  demands.cpp
4>  flowmapper.cpp
4>  linkgraph.cpp
4>  linkgraphjob.cpp
4>  linkgraphschedule.cpp
4>  mcf.cpp
4>  map.cpp
4>  misc.cpp
4>  mixer.cpp
4>  music.cpp
4>  openttd.cpp
4>  order_backup.cpp
4>  os_timer.cpp
4>  pbs.cpp
4>  progress.cpp
4>  rail.cpp
4>  rev.cpp
4>  road.cpp
4>  roadstop.cpp
4>  screenshot.cpp
4>  sdl.cpp
4>  settings.cpp
4>  signal.cpp
4>  signs.cpp
4>  sound.cpp
4>  sprite.cpp
4>  spritecache.cpp
4>  station.cpp
4>  string.cpp
4>  stringfilter.cpp
4>  strings.cpp
4>  story.cpp
4>  subsidy.cpp
4>..\src\story.cpp(21): fatal error C1083: Cannot open include file: 'tile_map.h': No such file or directory
4>  textbuf.cpp
4>  texteff.cpp
4>  tgp.cpp
4>  tilearea.cpp
4>  townname.cpp
4>  vehicle.cpp
4>  vehiclelist.cpp
4>  viewport.cpp
4>  waypoint.cpp
4>  widget.cpp
4>  window.cpp
4>  aircraft_gui.cpp
4>  airport_gui.cpp
4>  autoreplace_gui.cpp
4>..\src\widget.cpp(1254): warning C4146: unary minus operator applied to unsigned type, result still unsigned
4>..\src\widget.cpp(1259): warning C4146: unary minus operator applied to unsigned type, result still unsigned
4>  bootstrap_gui.cpp
4>  bridge_gui.cpp
4>  build_vehicle_gui.cpp
4>  cheat_gui.cpp
4>  company_gui.cpp
4>  console_gui.cpp
4>  date_gui.cpp
4>  depot_gui.cpp
4>  dock_gui.cpp
4>  engine_gui.cpp
4>  error_gui.cpp
4>  fios_gui.cpp
4>  genworld_gui.cpp
4>  goal_gui.cpp
4>  graph_gui.cpp
4>  group_gui.cpp
4>  highscore_gui.cpp
4>  industry_gui.cpp
4>  intro_gui.cpp
4>  linkgraph_gui.cpp
4>  main_gui.cpp
4>  misc_gui.cpp
4>  music_gui.cpp
4>  newgrf_debug_gui.cpp
4>  newgrf_gui.cpp
4>  news_gui.cpp
4>  object_gui.cpp
4>  order_gui.cpp
4>  osk_gui.cpp
4>  rail_gui.cpp
4>  road_gui.cpp
4>  roadveh_gui.cpp
4>  settings_gui.cpp
4>  ship_gui.cpp
4>  signs_gui.cpp
4>  smallmap_gui.cpp
4>..\src\rail_gui.cpp(212): error C3861: 'GetTileRailwayStatus': identifier not found
4>..\src\rail_gui.cpp(238): warning C4805: '^' : unsafe mix of type 'SignalVariant' and type 'bool' in operation
4>..\src\rail_gui.cpp(442): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
4>..\src\rail_gui.cpp(442): error C2143: syntax error : missing ';' before '*'
4>..\src\rail_gui.cpp(442): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(442): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(445): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(445): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(445): error C2228: left of '.build_ns_rail' must have class/struct/union
4>..\src\rail_gui.cpp(446): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(446): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(446): error C2228: left of '.build_x_rail' must have class/struct/union
4>..\src\rail_gui.cpp(447): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(447): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(447): error C2228: left of '.build_ew_rail' must have class/struct/union
4>..\src\rail_gui.cpp(448): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(448): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(448): error C2228: left of '.build_y_rail' must have class/struct/union
4>..\src\rail_gui.cpp(449): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(449): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(449): error C2228: left of '.auto_rail' must have class/struct/union
4>..\src\rail_gui.cpp(450): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(450): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(450): error C2228: left of '.build_depot' must have class/struct/union
4>..\src\rail_gui.cpp(451): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(451): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(451): error C2228: left of '.convert_rail' must have class/struct/union
4>..\src\rail_gui.cpp(452): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(452): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(452): error C2228: left of '.build_tunnel' must have class/struct/union
4>..\src\rail_gui.cpp(498): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
4>..\src\rail_gui.cpp(498): error C2143: syntax error : missing ';' before '*'
4>..\src\rail_gui.cpp(498): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(498): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(499): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(499): error C2227: left of '->max_speed' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(501): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(501): error C2227: left of '->strings' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(501): error C2228: left of '.toolbar_caption' must have class/struct/union
4>..\src\rail_gui.cpp(502): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(502): error C2227: left of '->max_speed' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(504): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(504): error C2227: left of '->strings' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(504): error C2228: left of '.toolbar_caption' must have class/struct/union
4>..\src\rail_gui.cpp(516): error C2227: left of '->cursor' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(516): error C2228: left of '.rail_ns' must have class/struct/union
4>..\src\rail_gui.cpp(516): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(521): error C2227: left of '->cursor' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(521): error C2228: left of '.rail_swne' must have class/struct/union
4>..\src\rail_gui.cpp(521): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(526): error C2227: left of '->cursor' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(526): error C2228: left of '.rail_ew' must have class/struct/union
4>..\src\rail_gui.cpp(526): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(531): error C2227: left of '->cursor' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(531): error C2228: left of '.rail_nwse' must have class/struct/union
4>..\src\rail_gui.cpp(531): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(536): error C2227: left of '->cursor' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(536): error C2228: left of '.autorail' must have class/struct/union
4>..\src\rail_gui.cpp(536): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(546): error C2227: left of '->cursor' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(546): error C2228: left of '.depot' must have class/struct/union
4>..\src\rail_gui.cpp(546): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(582): error C2227: left of '->cursor' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(582): error C2228: left of '.tunnel' must have class/struct/union
4>..\src\rail_gui.cpp(582): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(591): error C2227: left of '->cursor' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(591): error C2228: left of '.convert' must have class/struct/union
4>..\src\rail_gui.cpp(591): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(855): error C3861: 'ValParamRailtype': identifier not found
4>..\src\rail_gui.cpp(1092): error C3861: 'StationPickerDrawSprite': identifier not found
4>..\src\rail_gui.cpp(1104): error C3861: 'StationPickerDrawSprite': identifier not found
4>..\src\rail_gui.cpp(1140): error C3861: 'StationPickerDrawSprite': identifier not found
4>..\src\rail_gui.cpp(1514): error C2227: left of '->gui_sprites' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(1514): error C2228: left of '.signals' must have class/struct/union
4>..\src\rail_gui.cpp(1514): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(1653): error C3861: 'DrawTrainDepotSprite': identifier not found
4>..\src\rail_gui.cpp(1862): error C3861: 'HasRailtypeAvail': identifier not found
4>..\src\rail_gui.cpp(1866): error C3861: 'GetBestRailtype': identifier not found
4>..\src\rail_gui.cpp(1921): error C2227: left of '->sorting_order' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(1921): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(1938): error C2227: left of '->introduces_railtypes' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(1938): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(1942): error C3861: 'AddDateIntroducedRailTypes': identifier not found
4>..\src\rail_gui.cpp(1950): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
4>..\src\rail_gui.cpp(1950): error C2143: syntax error : missing ';' before '*'
4>..\src\rail_gui.cpp(1950): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(1950): error C3861: 'GetRailTypeInfo': identifier not found
4>..\src\rail_gui.cpp(1952): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(1952): error C2227: left of '->label' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(1954): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(1954): error C2227: left of '->strings' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(1954): error C2228: left of '.replace_text' must have class/struct/union
4>..\src\rail_gui.cpp(1954): error C2227: left of '->max_speed' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(1956): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(1956): error C2227: left of '->strings' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>..\src\rail_gui.cpp(1956): error C2228: left of '.menu_text' must have class/struct/union
4>..\src\rail_gui.cpp(1957): error C2065: 'rti' : undeclared identifier
4>..\src\rail_gui.cpp(1957): error C2227: left of '->max_speed' must point to class/struct/union/generic type
4>          type is ''unknown-type''
4>  station_gui.cpp
4>  statusbar_gui.cpp
4>  story_gui.cpp
4>  subsidy_gui.cpp
4>  terraform_gui.cpp
4>  textfile_gui.cpp
4>  timetable_gui.cpp
4>  toolbar_gui.cpp
4>..\src\smallmap_gui.cpp(536): error C2664: 'GetSmallMapContoursPixels' : cannot convert parameter 2 from 'TileType' to 'SmallmapTileType'
4>          Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
4>..\src\smallmap_gui.cpp(536): error C2664: 'GetSmallMapRoutesPixels' : cannot convert parameter 2 from 'TileType' to 'SmallmapTileType'
4>          Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
4>..\src\smallmap_gui.cpp(799): error C2664: 'GetSmallMapLinkStatsPixels' : cannot convert parameter 2 from 'SmallmapTileType' to 'TileType'
4>          Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
4>  town_gui.cpp
4>  train_gui.cpp
4>  transparency_gui.cpp
4>  tree_gui.cpp
4>  vehicle_gui.cpp
4>  viewport_gui.cpp
4>  waypoint_gui.cpp
4>  aircraft_cmd.cpp
4>  autoreplace_cmd.cpp
4>  bridge_cmd.cpp
4>  clear_cmd.cpp
4>  company_cmd.cpp
4>  depot_cmd.cpp
4>  disaster_cmd.cpp
4>  group_cmd.cpp
4>  industry_cmd.cpp
4>  misc_cmd.cpp
4>  misctile_cmd.cpp
4>  object_cmd.cpp
4>  order_cmd.cpp
4>  rail_cmd.cpp
4>  road_cmd.cpp
4>  roadveh_cmd.cpp
4>  ship_cmd.cpp
4>  signs_cmd.cpp
4>  station_cmd.cpp
4>  terraform_cmd.cpp
4>  timetable_cmd.cpp
4>  town_cmd.cpp
4>..\src\rail_cmd.cpp(38): fatal error C1083: Cannot open include file: 'object_map.h': No such file or directory
4>  train_cmd.cpp
4>  tree_cmd.cpp
4>  tunnelbridge_cmd.cpp
4>  vehicle_cmd.cpp
4>  water_cmd.cpp
4>  waypoint_cmd.cpp
4>  base.cpp
4>  newgrf.cpp
4>  newgrf_airport.cpp
4>  newgrf_airporttiles.cpp
4>  newgrf_canal.cpp
4>  newgrf_cargo.cpp
4>  newgrf_commons.cpp
4>  newgrf_config.cpp
4>  newgrf_engine.cpp
4>  newgrf_generic.cpp
4>  newgrf_house.cpp
4>  newgrf_industries.cpp
4>  newgrf_industrytiles.cpp
4>  newgrf_object.cpp
4>  newgrf_railtype.cpp
4>  newgrf_sound.cpp
4>  newgrf_spritegroup.cpp
4>  newgrf_station.cpp
4>  newgrf_storage.cpp
4>  newgrf_text.cpp
4>  newgrf_town.cpp
4>  newgrf_townname.cpp
========== Build: 2 succeeded, 1 failed, 3 up-to-date, 1 skipped ==========
User avatar
cirdan
Director
Director
Posts: 539
Joined: 07 Apr 2007 18:08

Re: New map features

Post by cirdan »

I take it that you tried to rebase my patch against trunk and got that compile log, right?

Well, you cannot really expect to have no conflicts, or only trivial conflicts, when rebasing a 400-commit branch across 300 trunk revisions, and sometimes patches seem to apply fine but then break because one patch introduces a new call site to a function that the other patch removes, for instance. Fixing the errors you got would require careful study of the point in the branch where the conflict appears.

I do intend to rebase this patch against trunk in the future, as soon as I finish some experiments with it.
User avatar
MasterMeNL
Engineer
Engineer
Posts: 86
Joined: 12 Oct 2012 17:16
Location: Netherlands

Re: New map features

Post by MasterMeNL »

Yes I did, I blame OpenTTD for renaming stuff all the time lol.
I can help with "simple" stuff if you'd like some help.
I'm looking forward to the update, this patch is definitely one of the best ones I've found so far!

Regards,

Melvin.
User avatar
cirdan
Director
Director
Posts: 539
Joined: 07 Apr 2007 18:08

Re: New map features

Post by cirdan »

Here is a bugfix-only update to the patch. Compared to the previous release, it fixes crashes when building a road stop, trying to remove a road from a non-road tile or trying to build a bridge with both ends on the same tile.

The patch is still against r25238, which is four months old now, and misses many things in trunk, such as cargodist; on the other hand, it keeps savegame compatibility with my previous patches. I do intend to rebase the patch soon, but I will make another post about that.
MasterMeNL wrote:Yes I did, I blame OpenTTD for renaming stuff all the time lol.
I can help with "simple" stuff if you'd like some help.
I'm looking forward to the update, this patch is definitely one of the best ones I've found so far!
Thanks for your offer--I will see what I come across when I try to rebase the patch against trunk.
Attachments
nma-r25238.diff.gz
(406.66 KiB) Downloaded 125 times
User avatar
cirdan
Director
Director
Posts: 539
Joined: 07 Apr 2007 18:08

Re: New map features

Post by cirdan »

I have finally finished doing experiments with my other development branches, and it was my intention to next update this patch, as it is currently lagging behind trunk by four months. However, trunk has seen several savegame bumps since my last published patch, so there is no way to do a rebase while maintaining savegame compatibility with that version (without an inordinate amount of work). Of course, I clearly stated that from the beginning--it is just a coincidence that a savegame bump did not happen for so long--because at that time I considered my patch to be a proof of concept.

But, a year and a half later, the patch has turned out to be quite stable. Not many bugs were reported, far fewer than I expected, and just a couple of them required any serious work to be fixed. This is mature code now, and I am considering what to do next. The natural thing to do would be to submit an updated branch for inclusion in trunk and to work towards integration in openttd's code base. I feel, however, that there is not much (any?) interest in merging this patch, so I wonder if there is any point in trying.

Aside from merging upstream, there are not many options left. I could just continue as before: rebasing the patch against trunk should be easy, as trunk has not had any radical change in areas that could interfere with my patch, but savegame compatibility will be lost now and every time the savegame format changes in trunk. I could also just drop the patch--I have enjoyed coding custom bridgeheads very much, which was my goal; it would be a pity to let two years' worth of work go to waste though. And yet another possibility would be to actively try to keep compatibility both with older patch versions and with trunk. Part of my recent experiments with openttd were with the saveload code, and I think that I am now in a position where I could achieve this. It would be likely harder, but not too much, and would give us more freedom to further improve the patch with new features; this would effectively create a fork of openttd.

What do people think? Is anybody interested in keeping this patch alive?
User avatar
Lord Aro
Tycoon
Tycoon
Posts: 2369
Joined: 25 Jun 2009 16:42
Location: Location, Location
Contact:

Re: New map features

Post by Lord Aro »

Of course we want this patch :)

To aid trunk inclusion, you should of course:
a) split the patch up into separate changes (i know you've already done this, but i don't see a recent version published)
b) for minor things such as bug fixes that are (mostly) unrelated to the map features, make (individual) flyspray tasks
c) nag the devs constantly for a code review ;)
AroAI - A really feeble attempt at an AI

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. --Edsger Dijkstra
Supercheese
Tycoon
Tycoon
Posts: 1660
Joined: 16 Dec 2007 22:24
Location: Idaho, USA

Re: New map features

Post by Supercheese »

As y'all know, I've been compiling my own custom versions of OTTD which used to include this patch(pack), but I've not been using it lately due to the new trunk features that have come out recently (that and my general lack of time to play due to university classes). Of course, if this pack is rebased to current trunk I will definitely use it again.

And we all want trunk inclusion, naturally! Lord Aro seems to have ninjaed me as I write this, so I will defer to his recommendations. :)
Eyecandy Road Vehicles | Fake Subways | Supercheese's NewObjects

"Fashions and cultures change, but steam trains shall always be majestic."
-Professor Hershel Layton
User avatar
wallyweb
Tycoon
Tycoon
Posts: 6102
Joined: 27 Nov 2004 15:05
Location: Canada

Re: New map features

Post by wallyweb »

[echo]Lord Aro + Supercheese[/echo]

I'm not too concerned about saved game compatibility. If I have a game in progress when a new OTTD version is released, I just add the new release to my system and keep the old one in case I want or need it, or simply as a fall back should the impossible occur. I am currently insured to a depth of at least five OTTD instalations. :mrgreen:

Submit it to the devs ... Tell them it is ready for prime time ... Request it be included in a nightly ... Is there a dev who has shown an interest in your work? Perhaps that person would be willing to introduce the patch into trunk ...

The only other feature I would have liked to have seen included would have been enhanced tunnels similar to the TTDPatch implementation. Perhaps these could be revisited on their own once the current patch is on its way to trunk.
User avatar
MasterMeNL
Engineer
Engineer
Posts: 86
Joined: 12 Oct 2012 17:16
Location: Netherlands

Re: New map features

Post by MasterMeNL »

I'm interested in keeping it alive too, but with my C++ skills right now there's not a lot that I can do.
This is really one of those patches that I'd really like to have, it'll probably be the base of MMNL Custom Series 2 unless it doesn't require a new map, it might be included in Series 1 in that case.

I'm really looking forward to the updated version.

Regards,

Melvin.
Eddi
Tycoon
Tycoon
Posts: 8267
Joined: 17 Jan 2007 00:14

Re: New map features

Post by Eddi »

i have not tested this patch, and i don't speak for the devs, but the most likely reply you'd get from submitting this patch is "but we had a somewhat more flexible way in mind to extend the map capabilities" (besides code style and stuff)

that should not discourage you from trying anyway :)
User avatar
AlexG
Traffic Manager
Traffic Manager
Posts: 136
Joined: 04 Apr 2011 07:27
Location: Cluj Napoca

Re: New map features

Post by AlexG »

Well, for me this patch is the most important because is the first patch that I could count on it :D
But I have one suggestion: can you increase the limit of newGRF ID ? :mrgreen:
I would vote for savegame compatibility because I like playing long term games but that's not obligatory....
User avatar
Tafidis
Traffic Manager
Traffic Manager
Posts: 157
Joined: 19 Oct 2010 19:49

Re: New map features

Post by Tafidis »

Hello,

I would definitely like to see this patch included, and hope you don't give up on it. My proposal (and I don't know anything, really) would be to forget about savegame compatibility and concentrate on making the case with devs. You cannot personally support/upgrade the patch forever, so the best hope for it would be inclusion. I have read the whole thread several times and from what I understand it is a rather big, but still well organised, piece of code. And it offers not only the features you have coded, but also the possibility for other features many have requested. I don't know how far it all goes in the direction the devs might favour, but I personally thank you for your contribution/effort. :bow:
Citizens Celebrate! First train arrives in <insert your favourite town/station name here>!
User avatar
kyosuke1989
Transport Coordinator
Transport Coordinator
Posts: 273
Joined: 24 Mar 2008 13:04
Location: Finland

Re: New map features

Post by kyosuke1989 »

I'm really impressed and intrested of these patches. Thumbs up for continued pushing towards the trunk, i'd love to see it on 1.4.0 on March 2014! :) I'd say, it would be quite nice if this collection of patches would be eventually merged to current trunk. Do not lose motivation at this point, because you have already so much thought and done correctly. After making current trunk-compatible, code should be reviewed by dev and merged, piece by piece. Are there any bits free in the new map array for eventual diagonal/unified level crossings?

The compactness of bridges really adds to gameplay, since it allows much more smart solutions for certain junctions.
User avatar
cirdan
Director
Director
Posts: 539
Joined: 07 Apr 2007 18:08

Re: New map features

Post by cirdan »

Lord Aro wrote:To aid trunk inclusion, you should of course:
a) split the patch up into separate changes (i know you've already done this, but i don't see a recent version published)
b) for minor things such as bug fixes that are (mostly) unrelated to the map features, make (individual) flyspray tasks
c) nag the devs constantly for a code review ;)
It does not work [1]. Unless, of course, dev nagging must be done in some special way that I am unaware of. It is hard to tell, because there is nowhere that says what to do to contribute patches to openttd.

I grew tired of updating patches in flyspray when I saw that no dev even cared to reply to my last submission [2]. I even asked planetmaker a direct question on the subject half a year ago, and he just hushed away.
wallyweb wrote:The only other feature I would have liked to have seen included would have been enhanced tunnels similar to the TTDPatch implementation. Perhaps these could be revisited on their own once the current patch is on its way to trunk.
There is nothing in my patch, as it is now, that precludes implementation of enhanced tunnels; to the contrary, the new map array design explicitly allows for them. It is just that nothing has actually been done towards them. If they ever were to be implemented, this patch would be a far better starting point for them than current trunk, if only for the improvements in the pathfinders and wormhole handling.
Eddi wrote:i have not tested this patch, and i don't speak for the devs, but the most likely reply you'd get from submitting this patch is "but we had a somewhat more flexible way in mind to extend the map capabilities" (besides code style and stuff)

that should not discourage you from trying anyway :)
This, too. OpenTTD, the project where vague plans stalled for years beat working code. And as if my new map array made those plans any harder, were they ever to be implemented.
Sadguardian wrote:But I have one suggestion: can you increase the limit of newGRF ID ? :mrgreen:
If you mean the patch that Supercheese used to include in his binaries, I have never used it--in fact, I have never seen what it does. As such, I would have to review it and understand it first.
kyosuke1989 wrote:Are there any bits free in the new map array for eventual diagonal/unified level crossings?
Level crossings do have a few spare bits, so the map array would not be a problem for this.

Ok, so you have convinced me to update the patch. This may take a while, because there have been over 500 commits in trunk since my last patch, and I have a batch of pending adjustments that were waiting for a savegame compatibility break.
Eddi
Tycoon
Tycoon
Posts: 8267
Joined: 17 Jan 2007 00:14

Re: New map features

Post by Eddi »

from what i remember, diagonal crossings need 3 additional bits for the track direction and 1 additional bit for the track reservation (in case 2 diagonal track bits are on one tile). it certainly doesn't need a "new map array" type patch like this one.

i have a somewhat working not-uptodate-anymore-but-more-uptodate-than-the-MiniIN version of that, but it lacks the drawing part.
Post Reply

Return to “OpenTTD Development”

Who is online

Users browsing this forum: No registered users and 31 guests