www.tombraiderforums.com

Go Back   www.tombraiderforums.com > Tomb Raider Modding > Tomb Raider Level Editor > Software Development

Reply
 
Thread Tools
Old 18-08-19, 10:57   #2341
ExpertRaider
Hobbyist
 
Join Date: Aug 2019
Posts: 16
Default

Quote:
Originally Posted by Cochrane View Post
Let’s get the obvious out of the way first: Does the file include stdio.h or cstdio?

Edit to add: Oh, and for future reference, please don’t post giant screenshots, they’re not that helpful. Post the full compiler output instead (or build log or whatever your IDE calls it), as text, that makes things easier on everyone.

And vvsgh is completely correct. TRE is fiddly. The reason why there isn’t a current release is precisely because of what you’re seeing: It’s not really ready to be released at the moment. You’re still welcome to try and play around with it, of course, but don’t expect everything (or really, anything) to work.
Sorry it took me a while to respond. I got frustrated with OpenTomb and needed a break. But you were absolutely right! I added #include <stdio.h> and #include <stdlib.h> to the code and it works perfect now. I had to add #include <stdlib.h> because it was complaining about the calloc code as well. I mean seriously? Who coded this? These mistakes should have been caught when debugging the code, oh well. Sorry about the big screenshots, I will post build logs in the future.

For future reference the gui.cpp code from the OpenTomb source code in src/gui needs #include <stdio.h> and the gui_menu.cpp code from the OpenTomb source code in src/gui needs #include <stdlib.h> added to it or no one will be able to compile it properly. Thanks again for the help!

EDIT: I am having a similar problem with audio_stream.cpp and gameflow.cpp. It is complaining that "malloc is not declared in this scope" and "free is not declared in this scope. Which means I have to add #include <stdlib.h> again to the source code.

1. audio_stream.cpp is in src/audio folder
2. gameflow.cpp is in src folder

After all of that it still says build failed. Here is the error log from my build log:

Quote:
||=== Build: all in OpenTomb (compiler: GNU GCC Compiler) ===|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Init_FreeType'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Done_FreeType'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_New_Face'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Select_Charmap'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_New_Memory_Face'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Select_Charmap'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Done_Face'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Set_Char_Size'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Load_Glyph'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Render_Glyph'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Kerning'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Kerning'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Kerning'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Kerning'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Char_Index'|
CMakeFiles\OpenTomb.dir\objects.a(gl_font.c.obj)gl _font.c|| undefined reference to `FT_Get_Kerning'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `strnlen'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWwrite'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWclose'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWwrite'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWwrite'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWwrite'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWwrite'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWwrite'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| more undefined references to `SDL_RWwrite' follow|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWclose'|
CMakeFiles\OpenTomb.dir\objects.a(system.c.obj)sys tem.c|| undefined reference to `SDL_RWclose'|
CMakeFiles\OpenTomb.dir\objects.a(tiny_codec.c.obj )tiny_codec.c|| undefined reference to `SDL_RWread'|
CMakeFiles\OpenTomb.dir\objects.a(tiny_codec.c.obj )tiny_codec.c|| undefined reference to `SDL_RWtell'|
CMakeFiles\OpenTomb.dir\objects.a(tiny_codec.c.obj )tiny_codec.c|| undefined reference to `SDL_RWclose'|
CMakeFiles\OpenTomb.dir\objects.a(rpl.c.obj)rpl.c| | undefined reference to `SDL_RWread'|
CMakeFiles\OpenTomb.dir\objects.a(rpl.c.obj)rpl.c| | undefined reference to `SDL_RWseek'|
CMakeFiles\OpenTomb.dir\objects.a(rpl.c.obj)rpl.c| | undefined reference to `SDL_RWseek'|
CMakeFiles\OpenTomb.dir\objects.a(rpl.c.obj)rpl.c| | undefined reference to `SDL_RWseek'|
CMakeFiles\OpenTomb.dir\objects.a(rpl.c.obj)rpl.c| | undefined reference to `SDL_RWseek'|
CMakeFiles\OpenTomb.dir\objects.a(rpl.c.obj)rpl.c| | undefined reference to `SDL_RWseek'|
CMakeFiles\OpenTomb.dir\objects.a(rpl.c.obj)rpl.c| | more undefined references to `SDL_RWseek' follow|
CMakeFiles\OpenTomb.dir\objects.a(l_common.cpp.obj )l_common.cpp|| undefined reference to `SDL_RWread'|
CMakeFiles\OpenTomb.dir\objects.a(l_common.cpp.obj )l_common.cpp|| undefined reference to `SDL_RWread'|
CMakeFiles\OpenTomb.dir\objects.a(l_common.cpp.obj )l_common.cpp|| undefined reference to `SDL_RWread'|
CMakeFiles\OpenTomb.dir\objects.a(l_common.cpp.obj )l_common.cpp|| undefined reference to `SDL_RWread'|
CMakeFiles\OpenTomb.dir\objects.a(l_common.cpp.obj )l_common.cpp|| undefined reference to `SDL_RWread'|
CMakeFiles\OpenTomb.dir\objects.a(l_common.cpp.obj )l_common.cpp|| more undefined references to `SDL_RWread' follow|
CMakeFiles\OpenTomb.dir\objects.a(l_main.cpp.obj)l _main.cpp|| undefined reference to `SDL_RWseek'|
CMakeFiles\OpenTomb.dir\objects.a(l_main.cpp.obj)l _main.cpp|| undefined reference to `SDL_RWclose'|
CMakeFiles\OpenTomb.dir\objects.a(l_main.cpp.obj)l _main.cpp|| undefined reference to `SDL_RWread'|
CMakeFiles\OpenTomb.dir\objects.a(l_main.cpp.obj)l _main.cpp|| undefined reference to `SDL_RWseek'|
CMakeFiles\OpenTomb.dir\objects.a(l_main.cpp.obj)l _main.cpp|| undefined reference to `SDL_RWclose'|
CMakeFiles\OpenTomb.dir\objects.a(l_main.cpp.obj)l _main.cpp|| undefined reference to `SDL_RWclose'|
.\||error: ld returned 1 exit status|
CMakeFiles\OpenTomb.dir\build.make|1622|recipe for target 'OpenTomb.exe' failed|
CMakeFiles\Makefile2|80|recipe for target 'CMakeFiles/OpenTomb.dir/all' failed|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-build\Makefile|82|recipe for target 'all' failed|
||=== Build failed: 62 error(s), 0 warning(s) (0 minute(s), 4 second(s)) ===|
Now what? I made sure to fix all of the errors before this. It spit out all of this garbage once it hit 100% after compiling everything. It didn't even make a OpenTomb.exe, what a waste of time!

Last edited by ExpertRaider; 18-08-19 at 11:31.
ExpertRaider is offline   Reply With Quote
Old 18-08-19, 11:23   #2342
vvsgh
Student
 
Join Date: Jun 2015
Posts: 134
Default

No, there is something very wrong with your files. I don't even have snprintf in my copy of gl_util.h. It looks like you still have an old version or may be some cached files are still not cleaned up. I'd started from a completely clean state.

P.S. Wait. Where did you get that version exactly? The only official repository is https://github.com/opentomb/OpenTomb.

Last edited by vvsgh; 18-08-19 at 11:27.
vvsgh is offline   Reply With Quote
Old 18-08-19, 11:26   #2343
ExpertRaider
Hobbyist
 
Join Date: Aug 2019
Posts: 16
Default

Quote:
Originally Posted by vvsgh View Post
No, there is something very wrong with your files. I don't even have snprintf in my copy of gl_util.h. It looks like you still have an old version or may be some cached files are still not cleaned up. I'd started from a completely clean state.
Oops, sorry I meant gui.cpp. I got mixed up. See if it is in that source code file. It is located in src/gui. Also gui.cpp only needs #include <stdio.h> to compile properly. gui_menu.cpp from src/gui needs both #include <stdio.h> and #include <stdlib.h> to compile properly. Sorry for the mix up.

EDIT: I downloaded it from the same github: https://github.com/opentomb/OpenTomb

It is the latest source code as well, I just checked. But yeah sorry for the file name mix up. Try looking at gui.cpp and seeing if snprintf is in that file.

Last edited by ExpertRaider; 18-08-19 at 11:33.
ExpertRaider is offline   Reply With Quote
Old 18-08-19, 11:39   #2344
vvsgh
Student
 
Join Date: Jun 2015
Posts: 134
Default

Strange, but I've got that file name directly from your screenshot. Nevertheless, all header files already got included on my OS and compiler. There is autobuild system, that recompiles the entire project each time anything changes and there are no errors also. I can't speak for TeslaRus, but it seems that it's specific to your environment and can't be reproduced somewhere else.

What is exact brand and version of your compiler? Is it Cygwin, MSYS or something else? We need to nail it down to specific configuration.
vvsgh is offline   Reply With Quote
Old 18-08-19, 11:42   #2345
ExpertRaider
Hobbyist
 
Join Date: Aug 2019
Posts: 16
Default

Alright I remade the Cmake project file with the new SDL2-devel-2.0.10-mingw libraries version. With all of the added #include code that I fixed there are no errors until it reaches 100%. Then it shows this error log:

Quote:
||=== Build: all in OpenTomb (compiler: GNU GCC Compiler) ===|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\core\system.c||In function 'Sys_ListDir':|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\core\system.c|224|warning: implicit declaration of function 'strnlen' [-Wimplicit-function-declaration]|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\containers\rpl.c||In function 'codec_open_rpl':|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\containers\rpl.c|246|warning: implicit declaration of function 'strncmp' [-Wimplicit-function-declaration]|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\containers\rpl.c|380|warning: implicit declaration of function 'sscanf' [-Wimplicit-function-declaration]|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\containers\rpl.c|380|warning: incompatible implicit declaration of built-in function 'sscanf'|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\containers\rpl.c|380|note: include '<stdio.h>' or provide a declaration of 'sscanf'|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape124.c||In function 'copy_superblock':|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape124.c|185|warning: implicit declaration of function 'memcpy' [-Wimplicit-function-declaration]|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape124.c|185|warning: incompatible implicit declaration of built-in function 'memcpy'|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape124.c|185|note: include '<string.h>' or provide a declaration of 'memcpy'|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape124.c|189|warning: implicit declaration of function 'memset' [-Wimplicit-function-declaration]|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape124.c|189|warning: incompatible implicit declaration of built-in function 'memset'|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape124.c|189|note: include '<string.h>' or provide a declaration of 'memset'|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape130.c||In function 'escape130_decode_init':|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape130.c|362|warning: implicit declaration of function 'memset' [-Wimplicit-function-declaration]|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape130.c|362|warning: incompatible implicit declaration of built-in function 'memset'|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\fmv\codecs\escape130.c|362|note: include '<string.h>' or provide a declaration of 'memset'|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-master\src\audio\stb_vorbis.c|580|warning: "alloca" redefined|
B:\DOWNLO~1\NEWFOL~1\TR3PAT~1\TOMBRA~1\OpenTomb\CO DEBL~1\MinGW\include\malloc.h|64|note: this is the location of the previous definition|
CMakeFiles\OpenTomb.dir\objects.a(gl_util.c.obj)gl _util.c|| undefined reference to `SDL_GL_GetProcAddress'|
CMakeFiles\OpenTomb.dir\objects.a(gl_util.c.obj)gl _util.c|| undefined reference to `SDL_GL_GetProcAddress'|
CMakeFiles\OpenTomb.dir\objects.a(gl_util.c.obj)gl _util.c|| undefined reference to `SDL_GL_GetProcAddress'|
CMakeFiles\OpenTomb.dir\objects.a(gl_util.c.obj)gl _util.c|| undefined reference to `SDL_GL_GetProcAddress'|
CMakeFiles\OpenTomb.dir\objects.a(gl_util.c.obj)gl _util.c|| undefined reference to `SDL_GL_GetProcAddress'|
CMakeFiles\OpenTomb.dir\objects.a(gl_util.c.obj)gl _util.c|| more undefined references to `SDL_GL_GetProcAddress' follow|
.\||error: ld returned 1 exit status|
CMakeFiles\OpenTomb.dir\build.make|1622|recipe for target 'OpenTomb.exe' failed|
CMakeFiles\Makefile2|84|recipe for target 'CMakeFiles/OpenTomb.dir/all' failed|
B:\Downloads\New folder (49)\TR3 Patches\Tomb Raider 3\OpenTomb\OpenTomb-master\OpenTomb-build2\Makefile|82|recipe for target 'all' failed|
||=== Build failed: 10 error(s), 11 warning(s) (3 minute(s), 44 second(s)) ===|
EDIT: The compiler I am using is the GNU GCC compiler. You can follow everything I did with this tutorial: https://www.youtube.com/watch?v=FrZlCmv7GRw

Last edited by ExpertRaider; 18-08-19 at 11:44.
ExpertRaider is offline   Reply With Quote
Old 18-08-19, 11:46   #2346
vvsgh
Student
 
Join Date: Jun 2015
Posts: 134
Default

These errors show that SDL can't be linked either because it can't be found or it's for different compiler/OS.

BTW, stdio.h doesn't need to be specified exactly because it got already included through SDL headers. So, I guess you have some problem with your SDL installation which is completely beyond OpenTomb's reach.

EDIT: If you didn't use some package management system like Cygwin or MSYS, then you are required to recompile all the libraries from source code. That's because every library need to be configured for specific OS/compiler combination in order to be compatible. You just can't use binaries not supplied with your particular compiler brand and version.

Last edited by vvsgh; 18-08-19 at 11:59.
vvsgh is offline   Reply With Quote
Old 18-08-19, 12:00   #2347
ExpertRaider
Hobbyist
 
Join Date: Aug 2019
Posts: 16
Default

Quote:
Originally Posted by vvsgh View Post
These errors show that SDL can't be linked either because it can't be found or it's for different compiler/OS.

BTW, stdio.h doesn't need to be specified exactly because it got already included through SDL headers. So, I guess you have some problem with your SDL installation which is completely beyond OpenTomb's reach.
I was just thinking, does it matter if I use mingw32 on a 64-bit system? Or should I use mingw64 when compiling OpenTomb? Because right now I am using mingw32 version 5.1.0. I just found version 6.0.0 and it has mingw64 included. Should I try updating MinGW and see if it fixes the problem?

EDIT: On second thought it might not matter. Since the source code in OpenTomb asks for the libmingw32.a library.

Last edited by ExpertRaider; 18-08-19 at 12:02.
ExpertRaider is offline   Reply With Quote
Old 18-08-19, 12:16   #2348
vvsgh
Student
 
Join Date: Jun 2015
Posts: 134
Default

Actually OpenTomb doesn't care about that particular library name unless you are cross-compiling (and you are not). That name come from your compiler and not from OpenTomb.

That said, I don't use Windows. And people on this project don't use Code::Blocks, except for Lwmte (and he wasn't seen here for years already).

As I've said previously, all libraries should be configured and compiled for particular compiler brand and version and you can't just download some random binaries and expect it to work. Either use some package management system which ensures that all libraries stay compatible or compile them yourselves. But in latter case it's your responsibility to configure everything properly. Otherwise chaos ensues.
vvsgh is offline   Reply With Quote
Old 18-08-19, 14:41   #2349
ExpertRaider
Hobbyist
 
Join Date: Aug 2019
Posts: 16
Default

Okay I think I almost have it fixed. I am trying to set the linking settings for the Cmake OpenTomb project but the Compiler Settings, Linker Settings, and Search Directories tabs are gone. I found this tutorial on how to make sure that SDL2 is linked properly but I can't follow the tutorial because there are no settings to change: https://lazyfoo.net/tutorials/SDL/01...ocks/index.php

I found out that if the setting "This is a custom makefile" is checked in the project properties that it will remove the above tabs. So I turned it off to see the linker settings and they are empty. So I followed the tutorial above to add in the SDL2 linker libraries and include folders without using the makefile. I also added the linked libraries in this order:


- libmingw32.a
- libSDL2main.a
- libSDL2.dll.a
- libpng.a
- libz.a
- libpthread.a

I also added -lmingw32 -lSDL2main -lSDL2 -lpng -lz -lpthread to the other linker options so I am sure it is loading and linking the right libraries.

But lone and behold the compiler refuses to build anything! I even checked the project properties to make sure it was still loading CmakeLists.txt in the build targets and it was. Also it still knows what compiler to use which is the GNU GCC Compiler. So there is no excuse why it isn't compiling anything.

This is my build log:
Quote:
-------------- Build: all in OpenTomb (compiler: GNU GCC Compiler)---------------

Target is up to date.
Nothing to be done (all items are up-to-date).
There is no OpenTomb.exe in my build folder so it shouldn't be saying that there is nothing to be done. Any ideas?

Last edited by ExpertRaider; 18-08-19 at 14:42.
ExpertRaider is offline   Reply With Quote
Old 18-08-19, 15:23   #2350
vvsgh
Student
 
Join Date: Jun 2015
Posts: 134
Default

That's probably because exe file is already linked in one of your previous attempts. You can't find it because it's not in the top project directory. Search for it in it's sub-directories, it might be there. That's why I've said that there might be issues with Code::Blocks and CMake.

IIRC there was a complain from Lwmte about this some time ago, and there was even argument between him and stohrendorf. This should be either in this thread or on GitHub, but I couldn't find it.
vvsgh is offline   Reply With Quote
Reply

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 17:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.