1
Simutrans Gaming Discussion / Re: Simutrans vs. OpenTTD
But... I like bits of *all* of them - honestly. And it's nice to have such different options...
Complete agreement. Choice is power is innovation is just the way I like it (tm)

This section allows you to view all Show Posts made by this member. Note that you can only see Show Posts made in areas you currently have access to.
But... I like bits of *all* of them - honestly. And it's nice to have such different options...
Technically, Simutrans allows for about 32000 colors plus a few special colors. If I remember correctly TTD graphics use 256 colors.
You don't really want a poll all about sports cars, free beer and sexy girls, do you
If Simutrans even doesn't know why it can't find a route, how come a player can? Furthermore, Simutrans Experimental is a great variant of Simutrans.
The code already uses the maximum weight of vehicles, not of convoys. A convoy will only be regarded as overweight for a way if the heaviest individual vehicle in that convoy is too heavy for that way, which is more realistic than applying an average weight (which would mean that one could make a locomotive that was too heavy for a way on its own not too heavy simply by adding enough light carriages, which makes no sense).
As you stated Standard does not enforce weight limits, Experimental does, ergo, it is Experimental that is wrong. Maybe as a temporary fix, you should make your next release so that it too does not enforce weight limits. Or, as I already said, Players will not be able to use airplanes.
By the way, this problem only seems to have started with v5.0. This could be indicative of a problem in your coding.
Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7ff934380700 (LWP 20487)]
0x00000000005e4eb1 in path_explorer_t::compartment_t::step (this=0x2922a48)
at path_explorer.cc:521
521 const uint32 projected_iterations = statistic_iteration * time_midpoint / statistic_duration;
(gdb) bt
#0 0x00000000005e4eb1 in path_explorer_t::compartment_t::step (this=0x2922a48)
at path_explorer.cc:521
#1 0x00000000005e67e9 in path_explorer_t::step () at path_explorer.cc:73
#2 0x00000000005d554c in karte_t::step (this=0x2920ef0) at simworld.cc:3001
#3 0x00000000005d6401 in karte_t::interactive (this=0x2920ef0)
at simworld.cc:4748
#4 0x00000000005a599d in simu_main (argc=2, argv=0x7fffa0b9df68)
at simmain.cc:956
#5 0x000000000060f320 in main (argc=2, argv=0x7fffa0b9df68) at simsys_s.cc:779
diff --git a/Makefile b/Makefile
index 0cf09c5..53edd4c 100644
--- a/Makefile
+++ b/Makefile
@@ -307,6 +307,7 @@ SOURCES += simware.cc
SOURCES += simwerkz.cc
SOURCES += simwin.cc
SOURCES += simworld.cc
+SOURCES += path_explorer.cc
SOURCES += sucher/platzsucher.cc
SOURCES += tpl/debug_helper.cc
SOURCES += unicode.cc
diff --git a/path_explorer.h b/path_explorer.h
index 0d55358..9cc0208 100644
--- a/path_explorer.h
+++ b/path_explorer.h
@@ -8,7 +8,7 @@
#ifndef path_explorer_h
#define path_explorer_h
-#include <string>
+#include <string.h>
#include "halthandle_t.h"
#include "convoihandle_t.h"
diff --git a/simsys_s.cc b/simsys_s.cc
index a514ad0..134e2c3 100644
--- a/simsys_s.cc
+++ b/simsys_s.cc
@@ -35,7 +35,8 @@
#include <string.h>
#include <stdlib.h>
#include <math.h>
-#include <mmsystem.h>
+//#include <mmsystem.h>
+#define LARGE_INTEGER uint64
#ifndef PATH_MAX
#define PATH_MAX (1024)
@@ -141,7 +142,7 @@ int dr_os_init(const int* parameter)
atexit(SDL_Quit); // clean up on exit
// Added by : Knightly
- if ( umgebung_t::default_einstellungen.get_system_time_option() == 0 )
+ /*if ( umgebung_t::default_einstellungen.get_system_time_option() == 0 )
{
// set precision to 1ms if multimedia timer functions are used
timeBeginPeriod(1);
@@ -156,7 +157,7 @@ int dr_os_init(const int* parameter)
umgebung_t::default_einstellungen.set_system_time_option(0); // reset to using multimedia timer
timeBeginPeriod(1); // set precision to 1ms
}
- }
+ }*/
return TRUE;
}
@@ -261,11 +262,11 @@ int dr_os_close(void)
// SDL_FreeSurface(screen);
// Added by : Knightly
- if ( umgebung_t::default_einstellungen.get_system_time_option() == 0 )
+ /*if ( umgebung_t::default_einstellungen.get_system_time_option() == 0 )
{
// reset precision if multimedia timer functions have been used
timeEndPeriod(1);
- }
+ }*/
return TRUE;
@@ -693,7 +694,7 @@ unsigned long dr_time(void)
{
// Modified by : Knightly
// declare and initialize once
- static LARGE_INTEGER t; // for storing current time in counts
+ /*static LARGE_INTEGER t; // for storing current time in counts
static LARGE_INTEGER f; // for storing performance counter frequency, which is fixed when system is running
static const bool support_performance_counter = ( QueryPerformanceFrequency(&f) != 0 );
@@ -707,10 +708,10 @@ unsigned long dr_time(void)
{
// Case : use multimedia timer functions
return timeGetTime();
- }
+ }*/
// Knightly : this function actually calls timeGetTime()
- // return SDL_GetTicks();
+ return SDL_GetTicks();
}
As to GitHub pushing other than at releases, the reason that I do not do that at present is that the automatic Linux nightlies will then build a new version, and that version will be linked as the version to download from the "How to get Simutrans-Experimental" post: I do not really want people using half-baked versions, as that is likely to cause confusion with bug reporting. I have currently not had the time to think of the most effective solution to this issue - it might be that, long-term, it is worth moving to a joint system of nightly and release builds, but that relies on somebody (possibly Wernieman) producing nightly builds for all platforms for Simutrans-Experimental, which is not done at present. Any thoughts on how to organise this effectively would be appreciated.
I think this doesn't need GUI settings.
This is the same as "window_buttons_right", we don't need to change this in the game. simuconf.tab is enough.
Editing settings.xml is not wished, since the values there could lead to simutrans crashing upon loading and never be able to start again without deleting it.
However, with these short tags size increases from 4MB to 288MB for savegames,
And why do you want to edit settings.xml? Everything there could achieved by simuconf.tab or even the command line. Simuconf.tab is much better documented too.
These name are historic, first was einstellungen and umgebung came later.(...)
<configuration>
<window-width>800</window-width>
<window-height>600</window-height>
<language>en</language>
...etc...
</configuration>
Sounds difficult to write in HTML. ;-)
I thought I had'nt seen this bug before. Yes it is electrification of Tram & Train lines.
This post by Nathan is strange to me because, the many years that I have been playing Simutrans this is the first time I have come across this particular phenomenon. I must have missed a version somewhere down the track.
Because the base values for the price of the way object is an unsigned integer. If that is used in the accounting without casting, where a - is used, it overflows and becomes a very high number. The fix is to cast it to a signed integer somewhere, but, if the code is changed around, somebody might well forget to cast it back again.
Nathan,
umgebung is used for things that do not need to be saved with the game, and einstellungen is used for things that do need to be saved with the game. The former deals with superficial user preferences (such as cycling between day and night views, etc.), and the latter with things that affect gameplay. The former settings are saved in settings.xml and are specific to each user: the latter are saved with each saved game and are specific to that saved game. The distinction will become even more important when multiplayer gaming via a network/the internet is introduced.
I have to say, when I first started using Simutrans, I found the reverse direction of the graphs very confusing, too. However, I suggest that any patch to change something like this that has been in Simutrans since time immorial be made optional, so as not to confuse seasoned players.