Page 10 of 69

Re: New map features

Posted: 06 Jul 2013 15:48
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.

Re: New map features

Posted: 16 Sep 2013 16:20
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!

Re: New map features

Posted: 17 Sep 2013 20:56
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.

Re: New map features

Posted: 18 Sep 2013 08:25
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?

Re: New map features

Posted: 18 Sep 2013 10:50
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)

Re: New map features

Posted: 19 Sep 2013 12:56
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 ==========

Re: New map features

Posted: 20 Sep 2013 20:53
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.

Re: New map features

Posted: 21 Sep 2013 11:18
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.

Re: New map features

Posted: 22 Sep 2013 15:14
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.

Re: New map features

Posted: 03 Oct 2013 16:18
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?

Re: New map features

Posted: 03 Oct 2013 17:00
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 ;)

Re: New map features

Posted: 03 Oct 2013 17:04
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. :)

Re: New map features

Posted: 03 Oct 2013 17:24
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.

Re: New map features

Posted: 03 Oct 2013 18:14
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.

Re: New map features

Posted: 03 Oct 2013 18:20
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 :)

Re: New map features

Posted: 03 Oct 2013 18:53
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....

Re: New map features

Posted: 04 Oct 2013 08:49
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:

Re: New map features

Posted: 04 Oct 2013 14:02
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.

Re: New map features

Posted: 05 Oct 2013 21:15
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.

Re: New map features

Posted: 05 Oct 2013 21:58
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.