Coder Social home page Coder Social logo

freerct / freerct Goto Github PK

View Code? Open in Web Editor NEW
240.0 240.0 35.0 139.58 MB

FreeRCT aims to be a free and open source game which captures the look, feel and gameplay of the popular games RollerCoaster Tycoon 1 and 2.

Home Page: https://freerct.net

CMake 1.12% Python 2.32% C++ 92.47% C 2.38% Yacc 0.30% Lex 0.14% Java 0.58% ImageJ Macro 0.64% GLSL 0.03% Nix 0.02%
cplusplus freerct game

freerct's Introduction

FreeRCT aims to be a free and open source game which captures the look, feel and gameplay of the popular games RollerCoaster Tycoon 1 and 2.

mainview

Building the program

Currently only Linux is officially supported, although Windows and MacOS should work. Let us know if it's broken.

Almost everything is written in C++, which means you need g++ or clang++ to compile it. FreeRCT uses C++17 features, so g++ 7+ or clang 6+ is recommended. In addition, you need:

  • lex/flex - Scanner generator for generating RCD input files. (optional)
  • yacc/bison - Parser generator for generating RCD input files. (optional)
  • libpng - Making the RCD data files that contain the graphics and other data read by the program.
  • GLFW3 & GLEW & Freetype - Displaying graphics of the program.
  • CMake & make - Building the program.

The existence of these programs/libraries is checked by cmake.

Building is as simple as

$ git clone https://codeberg.org/FreeRCT/FreeRCT.git
$ cd FreeRCT               # Go into the downloaded source directory.
$ mkdir build && cd build  # Create and enter a build directory.
$ cmake ..                 # Checks libraries are where they're supposed to be and replaces some strings.
$ make                     # Let make do the heavy work.
$ make install             # Optional step to install the program on the system. May require root privileges.

or, if you use Nix with flake support:

$ nix build

CMake accepts the following options:

Name Default value Explanation
VERSION_STRING
Use this string as the build version. If not specified, the version is detected automatically from git. If this also fails, the version defaults to '0.0.0-revdetect-broken'.
ASAN OFF Use AddressSanitizer (see below).
CMAKE_INSTALL_PREFIX '/usr' or '/usr/local' Directory where 'make install' installs.
DEBIAN_PACKAGING OFF If enabled, 'make install' uses a filesystem structure suited for packaging and system-wide installations on Debian/Ubuntu-like systems. Otherwise, a structure optimised for user-local installations and Flatpak builds is used.
RELEASE OFF Compile as a release build (works faster but is not suited for debugging).
USERDATA_PREFIX XDG basedir spec or '~/.freerct' or '~/.local/share/freerct' Default directory where user data such as savegames is stored. If not set, the XDG basedir specification will be applied. If XDG_DATA_HOME is not set, a platform-specific default path will be used.
WEBASSEMBLY OFF Compile as a WebAssembly program that can be run in the browser using JavaScript (experimental feature). May override all other settings.

Note that CMake options are prefixed with '-D', so the full call is e.g.

$ cmake -DASAN=ON -DCMAKE_INSTALL_PREFIX='~/.local' ..
$ cmake -DASAN=OFF -DVERSION_STRING="0.1~abc123" -DCMAKE_INSTALL_PREFIX='/usr' -DUSERDATA_PREFIX='~/.config/freerct' ..

You can use the switch -DASAN=ON to link AddressSanitizer (ASan) into the executable. ASan is a library that detects invalid memory accesses at runtime and terminates the program with a full backtrace upon detecting one. This makes it a useful and recommended tool for developers and everyone who wants to assist with discovering bugs. End-users should leave this option disabled. You might need to create a link to the symbolizer before using ASan for the first time, e.g.

$ sudo ln -s /usr/bin/llvm-symbolizer-3.8 /usr/bin/llvm-symbolizer

(the actual path may differ on your system.) See https://clang.llvm.org/docs/AddressSanitizer.html for more information on ASan.

  • src directory contains the source code of the FreeRCT program itself.
  • src/rcdgen directory contains the source code of the rcdgen program, that builds RCD files from source (which are read by freerct).
  • graphics/rcd directory contains the source files of the RCD data files, except the graphics.
  • graphics/sprites directory contains all the graphics of the game.
  • bin directory contains the actual freerct executable along with some other files required to actually run the program.
  • data directory contains miscellaneous assets loaded by FreeRCT at runtime.
  • utils directory contains miscellaneous utility programs and scripts that may make developers' lives easier.

The cmake/make commands above will generate the rcdgen program, the rcd files and build the 'freerct' program in the src directory.

Config file

Finally, you can optionally create a 'freerct.cfg' INI format file next to the 'freerct' program in the bin directory, containing the settings to use. All entries are optional. It looks like

[font]
medium-size = 12
medium-path = /usr/share/fonts/gnu-free/FreeSans.ttf

[language]
language = nds_DE

[saveloading]
auto-resave = false

This means the medium sized font is 12 points high, and its source font definition file is at the indicated path. Make sure you use a path that actually exists. The language is set to Low German by this example, and automatic resaving of savegame files is disabled.

The actual font file is not that critical, as long as it contains the ASCII characters, in the font-size you mention in the file.

All supported options are:

Section Name Default value Explanation
font medium-path <installdir>/data/font/Ubuntu-L.tff Default font file.
font medium-size 15 Default font size.
language language system language The language to use. Use --help for a list of supported languages.
saveloading auto-resave false If true, automatically resave all savegames directly after loading.
saveloading max_autosaves 3 The maximum number of automatic monthly savegames to retain. Setting this to 0 disables automatic saving.

Running the program

Now run the program

$ ./bin/freerct

or

$ make run

which should open a window containing the main menu (see also the pictures in the blog).

Pressing 'q' quits the program.

Use --help or -h to view available command-line options.

A detailed manual for the game is available online.

Building Troubleshoot

Linux

All the CMake dependencies can be installed under Debian based systems (e.g. Ubuntu) using the following command:

$ sudo apt install zlib1g-dev libpng-dev libglfw3-dev libglew-dev libfreetype-dev doxygen flex bison

MacOS

To install the dependencies on MacOS you can use Homebrew:

$ brew install flex bison libpng glfw glew freetype cmake make

freerct's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freerct's Issues

Loading language failed: 'Could not read header'

What steps will reproduce the problem?
1. Compile FreeRCT
2. Run FreeRCT from the terminal

What is the expected output? 
FreeRCT should run
What do you see instead?

Loading language failed: 'Could not read header'


What version of the product are you using? On what operating system?
Using trunk SVN

Please provide any additional information below.

Ubuntu 11.10
64-bit


Original issue reported on code.google.com by [email protected] on 13 May 2012 at 3:47

Path build GUI slope option doesn't reset if the option isn't valid anymore

What steps will reproduce the problem?
1. Open Paths
2. Select square to place a path
3. Choose a direction
4. Choose the upward slope
5. Buy 1 path
6. Choose the downward slope
7. Buy 1 path

What is the expected output? 
The downward slope option should be deselected and shaded to show that it isn't 
allowed.

What do you see instead?
The downward slope option is still selected upon selecting other options, like 
a flat piece or upward slope keeps the downward slope option remains selected.

What version of the product are you using? 
r531

On what operating system?
GNU/Linux

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 15 Nov 2012 at 2:42

Assert in map.h when guests leave raised path

What steps will reproduce the problem?
1. Build some paths
2. Wait for guests to start appearing
3. ???

Crashes with:

map.h:294: PersonList& VoxelWorld::GetPersonList(uint16, uint16, int16): 
Assertion `v != __null' failed.

I had a quick look myself but couldn't see anything obvious

Original issue reported on code.google.com by [email protected] on 10 Nov 2012 at 12:41

Crash

lordaro@donald:~/coding/freerct/src$ ./freerct
*** glibc detected *** ./freerct: free(): invalid next size (normal): 
0x00000000026e0330 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x75ab6)[0x7fa7f2631ab6]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x6c)[0x7fa7f26367ec]
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0(SDL_FreeSurface+0xdd)[0x7fa7f331756d]
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0(SDL_VideoQuit+0x6c)[0x7fa7f33196ec]
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0(SDL_QuitSubSystem+0x55)[0x7fa7f32f2095
]
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0(SDL_Quit+0xe)[0x7fa7f32f213e]
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0(+0xc73f)[0x7fa7f32f273f]
/lib/x86_64-linux-gnu/libc.so.6(+0x324f0)[0x7fa7f25ee4f0]
/usr/lib/x86_64-linux-gnu/libSDL_ttf-2.0.so.0(TTF_SizeUNICODE+0x39)[0x7fa7f30e22
19]
/usr/lib/x86_64-linux-gnu/libSDL_ttf-2.0.so.0(TTF_RenderUNICODE_Solid+0x3a)[0x7f
a7f30e261a]
/usr/lib/x86_64-linux-gnu/libSDL_ttf-2.0.so.0(TTF_RenderUTF8_Solid+0x74)[0x7fa7f
30e29e4]
./freerct[0x4163f5]
./freerct[0x41bc90]
./freerct[0x41d7d4]
======= Memory map: ========
00400000-00431000 r-xp 00000000 08:06 2011005                            
/home/lordaro/coding/freerct/src/freerct
00630000-00631000 rw-p 00030000 08:06 2011005                            
/home/lordaro/coding/freerct/src/freerct
00631000-0067d000 rw-p 00000000 00:00 0 
02665000-02797000 rw-p 00000000 00:00 0                                  [heap]
7fa7e4000000-7fa7e4021000 rw-p 00000000 00:00 0 
7fa7e4021000-7fa7e8000000 ---p 00000000 00:00 0 
7fa7ebbdd000-7fa7ebbe2000 r-xp 00000000 08:01 1925178                    
/usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fa7ebbe2000-7fa7ebde2000 ---p 00005000 08:01 1925178                    
/usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fa7ebde2000-7fa7ebde3000 rw-p 00005000 08:01 1925178                    
/usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fa7ebde3000-7fa7ebded000 r-xp 00000000 08:01 1925194                    
/usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7fa7ebded000-7fa7ebfec000 ---p 0000a000 08:01 1925194                    
/usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7fa7ebfec000-7fa7ebfed000 rw-p 00009000 08:01 1925194                    
/usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7fa7ebfed000-7fa7ebff6000 r-xp 00000000 08:01 1925166                    
/usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7fa7ebff6000-7fa7ec1f6000 ---p 00009000 08:01 1925166                    
/usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7fa7ec1f6000-7fa7ec1f7000 rw-p 00009000 08:01 1925166                    
/usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7fa7ec1f7000-7fa7ec1f8000 ---p 00000000 00:00 0 
7fa7ec1f8000-7fa7ec9f8000 rw-p 00000000 00:00 0 
7fa7ec9f8000-7fa7eca0b000 r-xp 00000000 08:01 501208                     
/lib/x86_64-linux-gnu/libresolv-2.13.so
7fa7eca0b000-7fa7ecc0a000 ---p 00013000 08:01 501208                     
/lib/x86_64-linux-gnu/libresolv-2.13.so
7fa7ecc0a000-7fa7ecc0b000 r--p 00012000 08:01 501208                     
/lib/x86_64-linux-gnu/libresolv-2.13.so
7fa7ecc0b000-7fa7ecc0c000 rw-p 00013000 08:01 501208                     
/lib/x86_64-linux-gnu/libresolv-2.13.so
7fa7ecc0c000-7fa7ecc0e000 rw-p 00000000 00:00 0 
7fa7ecc0e000-7fa7ecc14000 r-xp 00000000 08:01 944564                     
/usr/lib/libogg.so.0.7.1
7fa7ecc14000-7fa7ece13000 ---p 00006000 08:01 944564                     
/usr/lib/libogg.so.0.7.1
7fa7ece13000-7fa7ece14000 rw-p 00005000 08:01 944564                     
/usr/lib/libogg.so.0.7.1
7fa7ece14000-7fa7ece46000 r-xp 00000000 08:01 944792                     
/usr/lib/libvorbis.so.0.4.5
7fa7ece46000-7fa7ed045000 ---p 00032000 08:01 944792                     
/usr/lib/libvorbis.so.0.4.5
7fa7ed045000-7fa7ed046000 rw-p 00031000 08:01 944792                     
/usr/lib/libvorbis.so.0.4.5
7fa7ed046000-7fa7ed2fb000 r-xp 00000000 08:01 944794                     
/usr/lib/libvorbisenc.so.2.0.8
7fa7ed2fb000-7fa7ed4fa000 ---p 002b5000 08:01 944794                     
/usr/lib/libvorbisenc.so.2.0.8
7fa7ed4fa000-7fa7ed516000 rw-p 002b4000 08:01 944794                     
/usr/lib/libvorbisenc.so.2.0.8
7fa7ed516000-7fa7ed561000 r-xp 00000000 08:01 1925130                    
/usr/lib/x86_64-linux-gnu/libFLAC.so.8.2.0
7fa7ed561000-7fa7ed760000 ---p 0004b000 08:01 1925130                    
/usr/lib/x86_64-linux-gnu/libFLAC.so.8.2.0
7fa7ed760000-7fa7ed761000 r--p 0004a000 08:01 1925130                    
/usr/lib/x86_64-linux-gnu/libFLAC.so.8.2.0
7fa7ed761000-7fa7ed762000 rw-p 0004b000 08:01 1925130                    
/usr/lib/x86_64-linux-gnu/libFLAC.so.8.2.0
7fa7ed762000-7fa7ed777000 r-xp 00000000 08:01 501169                     
/lib/x86_64-linux-gnu/libnsl-2.13.so
7fa7ed777000-7fa7ed976000 ---p 00015000 08:01 501169                     
/lib/x86_64-linux-gnu/libnsl-2.13.so
7fa7ed976000-7fa7ed977000 r--p 00014000 08:01 501169                     
/lib/x86_64-linux-gnu/libnsl-2.13.so
7fa7ed977000-7fa7ed978000 rw-p 00015000 08:01 501169                     
/lib/x86_64-linux-gnu/libnsl-2.13.so
7fa7ed978000-7fa7ed97a000 rw-p 00000000 00:00 0 
7fa7ed97a000-7fa7ed989000 r-xp 00000000 08:01 1925182                    
/usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
7fa7ed989000-7fa7edb88000 ---p 0000f000 08:01 1925182                    
/usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
7fa7edb88000-7fa7edb89000 rw-p 0000e000 08:01 1925182                    
/usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
7fa7edb89000-7fa7edb8d000 r-xp 00000000 08:01 501233                     
/lib/x86_64-linux-gnu/libuuid.so.1.3.0
7fa7edb8d000-7fa7edd8c000 ---p 00004000 08:01 501233                     
/lib/x86_64-linux-gnu/libuuid.so.1.3.0
7fa7edd8c000-7fa7edd8d000 r--p 00003000 08:01 501233                     
/lib/x86_64-linux-gnu/libuuid.so.1.3.0
7fa7edd8d000-7fa7edd8e000 rw-p 00004000 08:01 501233                     
/lib/x86_64-linux-gnu/libuuid.so.1.3.0
7fa7edd8e000-7fa7eddb1000 r-xp 00000000 08:01 501221                     
/lib/x86_64-linux-gnu/libtinfo.so.5.9
7fa7eddb1000-7fa7edfb1000 ---p 00023000 08:01 501221                     
/lib/x86_64-linux-gnu/libtinfo.so.5.9
7fa7edfb1000-7fa7edfb5000 r--p 00023000 08:01 501221                     
/lib/x86_64-linux-gnu/libtinfo.so.5.9
7fa7edfb5000-7fa7edfb6000 rw-p 00027000 08:01 501221                     
/lib/x86_64-linux-gnu/libtinfo.so.5.9
7fa7edfb6000-7fa7edfbb000 r-xp 00000000 08:01 1925172                    
/usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fa7edfbb000-7fa7ee1ba000 ---p 00005000 08:01 1925172                    
/usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fa7ee1ba000-7fa7ee1bb000 r--p 00004000 08:01 1925172                    
/usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fa7ee1bb000-7fa7ee1bc000 rw-p 00005000 08:01 1925172                    
/usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fa7ee1bc000-7fa7ee1be000 r-xp 00000000 08:01 1925159                    
/usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fa7ee1be000-7fa7ee3bd000 ---p 00002000 08:01 1925159                    
/usr/lib/x86_64-linux-gnu/libXau.so.6.0.0Aborted

Am currently unable to reproduce, but just before the crash i had opened the 
paths menu, and tried to scroll to the left (and briefly, 2 maps seemed to 
appear)

Original issue reported on code.google.com by [email protected] on 3 Jun 2012 at 2:40

Guests cannot move down a path slope

What steps will reproduce the problem?
1. Build a sloped path
2. Get guests on path
3. Observe

What is the expected output? What do you see instead?
Guests don't seem to view the downward path as a valid direction to go

Original issue reported on code.google.com by [email protected] on 11 Jan 2014 at 4:42

Program crash when persons enter store

What steps will reproduce the problem?
1.Create a path to the border, such that persons start walking on the path
2.Build a shop on the path
3.When a person reaches the shop, the program aborts

What is the expected output? What do you see instead?
none

What version of the product are you using? On what operating system?
Revision 872 on Ubuntu 13.04 64-bit

Please provide any additional information below.
This should suffice:
freerct: ride_type.cpp:465: RideInstance* 
RidesManager::GetRideInstance(uint16): Assertion `num >= SRI_FULL_RIDES && num 
< SRI_LAST' failed.
Aborted (core dumped)

It appears that the 'num' in this context has a value of 4 and SRI_FULL_RIDES 
and SRI_LAST 5. 

Original issue reported on code.google.com by [email protected] on 21 Sep 2013 at 5:02

Incorrect memory access when copying or assigning Recolouring object.

(Please attach the patch in unified diff format.)
What are the major things which your patch changes / adds?
One major error I have had on my system is that because the copy constructor 
and assignment operator for the Recolouring class overwrites data out of 
bounds, it has caused frequent run-time errors having to do with creating new 
guests.

Against what version did you make your patch?
1079

Please provide any additional information below.
In palette.cpp lines 65 and 76, both the copy constructor and assignment 
operator depend on the std::copy function. The second argument uses 
multidimensional array notation for the supposed "end iterator" for the 
std::copy function. Unfortunately the bounds [5][256] will not be the end of 
the array, but will actually access memory 254 elements outwards which for my 
system was memory being used by other functions having to do with creating 
guests. Instead of [5][256], you need to write [0][0] + 5*256 which will ensure 
reaching the actual end to the array.

Original issue reported on code.google.com by [email protected] on 15 Mar 2014 at 9:54

Attachments:

Partial bug fix for AddRemovePathEdges

What are the major things which your patch changes / adds?
Adding edges to paths was broken: edges were added to paths were they didn't 
belong. 
When a straight path was build, next to a path one voxel lower, an edge at the 
side of the 
lower path was added.

The bug was caused by insufficient condition checking: each time a path gets 
build, one voxel
above that path gets the type SRI_PATH, so that paths can't be build one voxel 
above the path you
are currently building. These "fill-up" paths get PATH_INVALID as instance 
data, but this wasn't checked
inside the AddRemovePathEdges function.

My patch includes a partially rewritten function, with improved readability and 
more comments. The bug-fix
boils down to the line: "if (opposite_slope == PATH_INVALID) continue;"

The second patch file, path_build.patch, includes a small changes which sets 
the zpos one lower when building
a downward path.

Against what version did you make your patch?
Revision 1194

Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 25 May 2014 at 9:26

Attachments:

Path building height offset problem

What steps will reproduce the problem?
1. Build path as in picture

What is the expected output? What do you see instead?
Height offsets do not seem to get 'lowered' with the path correctly. Same 
problem can also be triggered differently with another path below.


Original issue reported on code.google.com by [email protected] on 25 Sep 2013 at 11:42

Attachments:

make fails: SDL_ttf.h not found

What steps will reproduce the problem?
1. svn co on August 17
2. make on openSuSE 64 bit with installed SDL-ttf (incl. dev package, 64 & 32 
bit)
3. result: video.h:16:21: fatal error: SDL_ttf.h: Datei oder Verzeichnis nicht 
gefunden
(file not found)

What is the expected output? What do you see instead?
no error message

What version of the product are you using? On what operating system?
Revision 825
openSuSE 12.2 x86_64

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 17 Aug 2013 at 12:36

Assert in map.h while terraforming a path with a guest

What steps will reproduce the problem?
1. Terraform a tile with a path _and_ guest on it
2. Boom!

What is the expected output? What do you see instead?
When terraforming near paths, it should create 'supports' rather than breaking 
the path up

Assert:
freerct: map.h:138: const SurfaceVoxelData* Voxel::GetSurface() const: 
Assertion `this->type == VT_SURFACE' failed.

Program received signal SIGABRT, Aborted.


gdb backtrace:
#0  0x00007ffff6e46475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff6e496f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff6e3f621 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x000000000040772e in Voxel::GetSurface (this=0x7ae258) at map.h:138
#4  0x000000000040db34 in GetZHeight (x_vox=6, y_vox=1, z_vox=8, x_pos=158, 
    y_pos=112) at people.cpp:80
#5  0x000000000040e716 in Person::OnAnimate (this=0x67ffe0, delay=30)
    at people.cpp:347
#6  0x000000000040f1ea in Guests::OnAnimate (this=0x67ffe0, delay=30)
    at people.cpp:636
#7  0x0000000000405167 in main () at main.cpp:129


Original issue reported on code.google.com by [email protected] on 10 Nov 2012 at 12:51

Update for nl_NL_gui.txt and nl_NL_shops - Added nl_NL_tracks

Change: Translated the whole Jan 5, 2014 gb_GB_gui.txt and Dec 4, 2013 
gb_GB_shops.txt to Dutch. Current (Apr 19, 2014) nl_NL_gui.txt and (Oct 22, 
2013) nl_NL_shops.txt do not contain every translation.
Add: Translated Dec 4, 2013 gb_GB_tracks.txt to Dutch (nl_NL_tracks.txt).

Is this the way to help adding translations?

Original issue reported on code.google.com by [email protected] on 19 Apr 2014 at 5:31

Attachments:

Error message when attempting to build on unowned land needed

As indicated in #22, there is currently no indication that you are attempting 
to build on land that you do not own.

Obviously, at some point in the future there will be fences marking this 
boundary, but there should also be some sort of error message.

Original issue reported on code.google.com by [email protected] on 11 Aug 2013 at 11:51

Debian/Ubuntu builds

What are the major things which your patch changes / adds?
I added a debian folder that enables to build native Debian/Ubuntu/Linux Mint 
packages

Against what version did you make your patch?
I made the patch with rev824 and the command svn diff

Please provide any additional information below.
I setup a PPA in this direction: 
https://launchpad.net/~adrian-arroyocalle/+archive/freerct

Original issue reported on code.google.com by [email protected] on 14 Aug 2013 at 4:02

Attachments:

Terraforming with LeftMouseButton and Mouse movement

I've coded terraforming like the original with hold down the right mouse button 
and then move the mouse up (leveling up) or down (leveling down) by every 10 
pixel mouse movement.

Original issue reported on code.google.com by vatriani.nn on 7 Oct 2013 at 4:00

Attachments:

Building paths in land not owned by park with long-option

Steps:
1. Click a tile right next to land that does not belong to park (2 tiles away 
from border)
2. Select long-switch and you will be able to place a path one tile in 
direction of border
3. Click on freshly built path and repeat to build next path right next to the 
border

As far as I know this should not be possible, since it is not allowed to build 
paths there with the traditional method

Version: r761
OS: Ubuntu 12.10

Original issue reported on code.google.com by [email protected] on 22 Jun 2013 at 12:12

Attempt at fixing build for FreeBSD

Hi there,

This is a patch against r895 that does a few rough and ready changes to make 
the build pass on FreeBSD (tested with FreeBSD 9.2-RC4 with libc++ support 
compiled in, and the invocation `configure; env CXX=clang++ 
CXXFLAGS="-std=c++11 -stdlib=libc++" gmake`).  It's mainly written from the PoV 
of someone trying to make the build work rather than being "production-ready" 
(sorry!)

I haven't yet tested this to ensure it doesn't break the general case (I'm 
submitting it more as a pointer of things that need considering rather than an 
apply-and-be-done-with patch I'm afraid).

Highlights of what I've tried to do:

1) Change the shebang of configure from #!/bin/bash to #!/bin/sh.  This is 
because configure doesn't use any bashisms at all, and also because bash is 
located elsewhere on a FreeBSD box (/usr/local/bin/bash).  IMO it's definitely 
better to use the more portable shell here.

2) FreeBSD date does not support the -ud invocation.  In order to convert one 
date to another, one has to use the FreeBSD-specific -j -f invocation and also 
provide the source format.  Naturally, GNU date doesn't support -j -f!  I've 
filled in the svn date checker with the FreeBSD equivalent but didn't get 
around to doing it for other VCSes.  To be honest a more portable way of doing 
this would be better (not sure how one would without dragging in dependencies 
or needing to compile some C)

3) Prefix for includes and libraries is now a !!VARIABLE!! that can be changed 
by configure, currently this is set to /usr/local for FreeBSD and /usr for 
other systems.  Otherwise, things tend not to be found on the former (most user 
installed software and libraries go to /usr/local there) =P  Could be done 
better, really.

4) CXX is now overridable and many other Makefile variables are now appended to 
the environment, so that it's easier to specify different cxxflags and a 
different compiler (necessary for building with clang/libc++).

5) FreeBSD doesn't use the GNU version of flex, so it doesn't support the long 
version of -o, hence I've shortened that flag.

6) I added a recursive call to the rcdgen Makefile in the main Makefile, to 
make it build rcdgen that way instead of automatically trying to infer that it 
comes from rcdgen.cpp in the main Makefile.  This is somewhat magic and can 
probably be done better, but it was an issue I was having.

7) For some reason scanner_funcs.h wasn't picking up stdafx.h so I made this 
explicit.

The takeaway from this patch is generally that there are a surprising amount of 
portability issues to consider even from one Unix-like environment to another.  
I'd like to contribute to freerct but since I'm more a FreeBSD person than a 
Linux one I thought I'd try to get some of them cleared up if possible first!

~ Matt

PS: I know it isn't my position to say this, and that they suck horrifically 
(especially GNU autotools, ick), but I'd say considering a makefile generator 
might be a good idea?  I'm just saying this because I know that even what I've 
done to configure to make it work for just one more special case has brought in 
a lot of unmaintainability and complexity that probably isn't needed >=P

Original issue reported on code.google.com by [email protected] on 14 Oct 2013 at 11:29

Attachments:

Spanish translation

What are the major things which your patch changes / adds?

I translate the files from English to Spanish

Against what version did you make your patch?

Rev 927

Please provide any additional information below.

There are three .txt files with the strings

Original issue reported on code.google.com by [email protected] on 27 Oct 2013 at 12:56

Attachments:

Coasters Obey Gravity and Hill Lifts

What are the major things which your patch changes / adds?
- Coaster accelerates downhill. 
- Coaster decelerates uphill (and reverses if speed goes negative)
- Coaster will be pulled up a hill lift if speed is too low
- A small amount of speed is lost every frame to simulate "friction"

Against what version did you make your patch?
- SVN revision 1097

Please provide any additional information below.
- The speed is increased/decreased using zdif variable and only.  True gravity 
acceleration is not used yet as getting the trains current angle compared to 
horizon is proving to be a challenge.

Original issue reported on code.google.com by [email protected] on 6 Apr 2014 at 12:56

Attachments:

Finances Window

Adds a finances panel, Money readout on bottom left, and ability to track 
finances in several categories month-by-month

Original issue reported on code.google.com by [email protected] on 6 Mar 2013 at 3:40

Attachments:

Danish translation

Thinking about making a danish translation of the 3 text files, in the near 
future.

Original issue reported on code.google.com by [email protected] on 3 Dec 2013 at 2:06

Cannot build paths after building a lot of paths

What steps will reproduce the problem?
1. Build a lot of paths

What is the expected output? What do you see instead?

I see that when build a lot of paths, paths can't be build anymore.

What version of the product are you using? On what operating system?

Rev 820, Ubuntu 12.04

Please provide any additional information below.

I think that it's the money but the money counter didn't change

Original issue reported on code.google.com by [email protected] on 11 Aug 2013 at 9:38

Collection of new features, inc. change resolution

add Dropdown-Menu

enchange Setting-Window
 add music = on/off (without changing everything)
 add sound = on/off (without changing everything)
 add change resolution

add new Shoutcuts
 enter = rotate right
 left/right/up/down-arrows = move on map
 prepare PGUP/PGDOWN = zooming

removes path by rightclick

add change resolution 
 broken window contains glitches after changing resolution

Original issue reported on code.google.com by vatriani.nn on 12 Oct 2013 at 2:38

Attachments:

Make scrollbar dragable

Enable selecting an item from the list of available rides.

Against what version did you make your patch?
1098

Please provide any additional information below.
To get the y-information, I had to modify the OnClick routine - which rippled 
through to several files. Maybe there is a better way? Modifying the scroll bar 
to handle longer lists will be required next in order to fully implement this 
feature.

Original issue reported on code.google.com by [email protected] on 4 Apr 2014 at 4:32

Attachments:

Make window movement more robuust against fast movements of the mouse pointer

What steps will reproduce the problem?
1. Move the window across the screen very quickly
2. Boom

gdb:


Program received signal SIGSEGV, Segmentation fault.
0x00007ffff76ac4b3 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) 
() from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) bt
#0  0x00007ffff76ac4b3 in std::_Rb_tree_increment(std::_Rb_tree_node_base 
const*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#1  0x00000000004277c1 in std::_Rb_tree_const_iterator<DrawData>::operator++ 
(this=0x7fffffffdfb0) at /usr/include/c++/4.7/bits/stl_tree.h:277
#2  0x0000000000425a8f in Viewport::OnDraw (this=0x7c9d30) at viewport.cpp:1220
#3  0x000000000042eb4d in UpdateWindows () at window.cpp:885
#4  0x000000000042ec0d in WindowManager::Tick (this=0x69ca80) at window.cpp:906
#5  0x0000000000405c1a in main () at main.cpp:125


Original issue reported on code.google.com by [email protected] on 16 Dec 2012 at 5:26

Crash when dragging a window to top of main window

Just drag a window to the top left corner and it will crash.

Version: r784
Os: Linux arch 3.9.7-1-ARCH #1 SMP PREEMPT Thu Jun 20 23:22:07 CEST 2013 i686 
GNU/Linux

Gdb output(moving the finance window):

Program received signal SIGSEGV, Segmentation fault.
0x0806f422 in VideoSystem::BlitText (this=0xbffffa68, text=0xbffff4b0 "Manage 
Finances", colour=1 '\001', xpos=-55, ypos=3, 
    width=232, align=ALG_CENTER) at video.cpp:635
635             if (*src2 != 0) *dest2 = colour;



Original issue reported on code.google.com by [email protected] on 19 Jul 2013 at 11:35

Removing a path created by "Long" path feature crashes game

What steps will reproduce the problem?
1. Create any path using Paths -> Long
2. Remove any segment of that path using Paths -> Remove

What is the expected output? What do you see instead?
Expected: Path removed
Output: Segmentation fault - Crashes Program

What version of the product are you using? On what operating system?
SVN revision 1097
OpenSUSE 13.1

Please provide any additional information below.
Netbeans debugger points to map.h line 74 as the problem.

Complete call stack:
------------------------
Voxel::GetInstance (this=0x0)
RemovePath (xpos=8, ypos=5, zpos=8 '\\b', test_only=false)
PathBuildManager::SelectBuyRemove (this=0x80f84a0 <_path_builder>, buying=false)
PathBuildGui::OnClick (this=0x8573848, number=11)
GuiWindow::OnMouseButtonEvent (this=0x8573848, state=1 '\\001')
WindowManager::MouseButtonEvent (this=0x8217490 <_manager>, button=MB_LEFT, 
pressed=true)
HandleEvent ()
main (argc=1, argv=0xbffff3a4)

Original issue reported on code.google.com by [email protected] on 31 Mar 2014 at 8:03

Segmentation fault on raise land over WORLD_Z_SIZE

What steps will reproduce the problem?
1. Go to landscaping tool
2. Keep scrolling up until you reach WORLD_Z_SIZE. (For easier testing, I set 
it to 10)
3. Crash

What is the expected output? What do you see instead?
Expected: Stop raising land.
Got: Segmentation fault


What version of the product are you using? On what operating system?
r599 on Gentoo linux 3.2.12


Please provide any additional information below.
I believe the problem to be in the function Voxel *VoxelStack::GetCreate(int16 
z, bool create),
on the first line (map.cpp:148) because if z >= WORLD_Z_SIZE, it returns NULL 
pointer which then TerrainChanges::ModifyWorld tries to dereference that NULL 
in the following lines (terraform.cpp:507-513).

Original issue reported on code.google.com by [email protected] on 11 Dec 2012 at 9:06

Terraforming with mousewheel errors

What steps will reproduce the problem?
1. Terraform with mousewheel
2. Ground goes weird

What is the expected output? What do you see instead?
Ground should terraform smoothly, instead you get the attached picture



Original issue reported on code.google.com by [email protected] on 15 Dec 2012 at 5:20

Attachments:

Assert in map.cpp when terraforming under a shop

What steps will reproduce the problem?
1. Build shop
2. Terraform land beneath it
3. Boom.

gdb stuffs:

NOT_REACHED triggered at line 369 of map.cpp
Program received signal SIGABRT, Aborted.
0x00007ffff6e46475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff6e46475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff6e496f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x0000000000404edf in error (s=0x427cd0 "NOT_REACHED triggered at line %i 
of %s") at main.cpp:43
#3  0x0000000000406355 in VoxelWorld::GetGroundHeight (this=0x63fca0, x=9, y=8) 
at map.cpp:369
#4  0x0000000000406765 in TerrainChanges::GetGroundData (this=0x7fffffffdfa0, 
pos=...) at map.cpp:458
#5  0x0000000000406bf5 in TerrainChanges::ChangeCorner (this=0x7fffffffdfa0, 
pos=..., corner=SL_FLAT, direction=-1) at map.cpp:510
#6  0x0000000000406af9 in TerrainChanges::ChangeCorner (this=0x7fffffffdfa0, 
pos=..., corner=TC_EAST, direction=-1) at map.cpp:500
#7  0x0000000000406af9 in TerrainChanges::ChangeCorner (this=0x7fffffffdfa0, 
pos=..., corner=TC_SOUTH, direction=-1) at map.cpp:500
#8  0x000000000041f987 in TileTerraformMouseMode::OnMouseWheelEvent 
(this=0x691bf0, vp=0x7a8630, direction=-1) at viewport.cpp:979
#9  0x000000000041ec01 in Viewport::OnMouseWheelEvent (this=0x7a8630, 
direction=-1) at viewport.cpp:1025
#10 0x0000000000426c40 in WindowManager::MouseWheelEvent (this=0x691cc0, 
direction=-1) at window.cpp:825
#11 0x0000000000405299 in main () at main.cpp:175


Possibly relates to Issue#9 as supports are not created when they should be

Original issue reported on code.google.com by [email protected] on 10 Nov 2012 at 3:34

Install FreeRCT and RCD files with make install

What are the major things which your patch changes / adds?

In this patch you can run cmake and later install it with make install

Against what version did you make your patch?

Rev 927

Please provide any additional information below.

I attach two patches, one for install rcd files and other for install freerct

Original issue reported on code.google.com by [email protected] on 27 Oct 2013 at 11:02

  • Blocking: #34
  • Blocked on: #36

Attachments:

Crash when removing a path below a guest

What steps will reproduce the problem?
1. build a path upwards
2. let the guest going there
3. remove path under the guest

What is the expected output?
guest fall down to tileground

What do you see instead?
programmcrash

NOT_REACHED triggered at line 167 of 
/home/niels/develop/git/freerct-read-only/src/person.cpp


Original issue reported on code.google.com by vatriani.nn on 11 Jan 2014 at 10:21

  • Blocked on: #51

Improved nl_NL_gui.txt translations

-Change: Improved some translations and removed unnecessary upper cases in 
'finances gui string'.

Note: Unnecessary upper cases in 'finances gui string' seems to be a problem in 
most gui language files, someone might need to look at that.

Original issue reported on code.google.com by [email protected] on 19 Apr 2014 at 8:53

Attachments:

Debian builds with CMake

What are the major things which your patch changes / adds?

This patch provides the debian folder ready for build packages with the new 
CMake system.

Against what version did you make your patch?

Rev 927


Please provide any additional information below.

This patch requires the Patch from Issue 33 solved first.

Original issue reported on code.google.com by [email protected] on 27 Oct 2013 at 11:40

  • Blocked on: #33

Assertion in viewport.cpp when scrolling down

What steps will reproduce the problem?
1. Choose path building or landscaping tool
2. Move the viewport down over the map edge.
3. It chrashes the moment the bottom corner (brown part, level 0) should become 
visible in the game window.

What is the expected output? What do you see instead?
It should scroll a bit more and then stop, like on the other edges.
Instead, program crashes with message:
freerct: viewport.cpp:666: uint8 Viewport::GetMaxCursorHeight(uint16, uint16, 
uint8): Assertion `zpos != 255' failed.
Aborted



What version of the product are you using? On what operating system?
FreeRCT-r594 on gentoo linux 3.2.12


Original issue reported on code.google.com by [email protected] on 8 Dec 2012 at 9:19

Patch to get it working on OSX

What are the major things which your patch changes / adds?
Add string header include

Against what version did you make your patch?
The latest

Please provide any additional information below.
My freerct.cfg:

[font]
medium-size = 12
medium-path = /Library/Fonts/Arial.ttf

Out-of-source building didn't work for me, so I just did cmake . inside the 
root project folder, and ran make afterwards.

I installed libsdl2, libsdl2_ttf and libpng using macports. AFAIK that's all I 
had to do.

Original issue reported on code.google.com by [email protected] on 11 May 2014 at 1:41

Attachments:

Segfault

Segfault:
- Build some paths at the edge of the map (i noticed no guests appearing)
- Wait



lordaro@donald:~/coding/freerct/src$ gdb ./freerct
GNU gdb (GDB) 7.4-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/lordaro/coding/freerct/src/freerct...done.
(gdb) run
Starting program: /home/lordaro/coding/freerct/src/freerct 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff1251700 (LWP 9268)]

Program received signal SIGSEGV, Segmentation fault.
0x0000000000417ae2 in SpriteCollector::CollectVoxel (this=0x7fffffffdf80, 
voxel=0x798fe0, xpos=6, ypos=0, zpos=8, xnorth=-192, ynorth=-32) at 
viewport.cpp:531
531         AnimationType anim_type = pers->walk->anim_type;

Original issue reported on code.google.com by [email protected] on 2 Jun 2012 at 8:34

Directional cursor is not working optimally

Observations from timfrombriz (Dev blog comment on "Guests! (Take 2)", june 1, 
2012)

"..The yellow directional cursor should pulse on/off a bit faster, and should 
reset to being 'on' upon a new piece being built to make it clear where the 
next piece will be applied."

Both are true, and probably easy to repair.

Original issue reported on code.google.com by [email protected] on 2 Jun 2012 at 8:06

Moving windows

If the mouse cursor moves out of window bounds, while dragging, the window 
stops moving (loses focus). For best result try to move the window upwards fast.

Steps
1. Grab a window (title bar)
2. Drag it around fast (upwards)



Original issue reported on code.google.com by [email protected] on 27 Jun 2013 at 12:43

  • Merged into: #15

Functionality for removing track piece

This change:

1) Enables the 'Remove' button when applicable.
2) Removes the track piece from the 'World' when remove is clicked.
3) Removes the track piece from the coaster instance.

I was thinking about also adding the functionality for the 'Forward' and 'Back' 
buttons on the coaster gui. Should this act the same as RCT where the piece 
blinks in white until it is removed?

Original issue reported on code.google.com by [email protected] on 1 May 2014 at 10:31

Attachments:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.