Forum



qpx am 13.09.2012 16:28 #10555


Hi,

is the mapeditor available for linux? browsing the source code i noticed there are some files tagged with "linux" but the installation guide only suggests using .exe and .dll files which are not working in linux.

thanks.


Spike am 13.09.2012 18:01 #10557

Im Ruhestand
As far as I know you have to compile the editor on your own (but the editor works in every case on linux I think but the
mouse won't work) otherwise you need to use wine (or how it is called)

I don't know much about Linux and this is everything I know :-/

---



jh am 13.09.2012 18:39 #10558


I think it is written in C#. You should be able to launch it using "Mono": http://www.mono-project.com/Main_Page


donpabloss am 14.09.2012 01:08 #10561


It's written in C++. I managed to compile on Linux, it starts, but hangs and it's not responding after I click
"Editor starten". Windows version seems to work fine with Wine.


Pechente am 14.09.2012 20:44 #10563


Did anyone successfully compile it for OS X or do I have to use Wine too? It's sad Windows seems to be the only officially supported platform :/


qpx am 16.09.2012 16:59 #10589


i'm having issues with wine.

first i had to install
Code:
app-emulation/wine-1.5.10
and the
Code:
dev-lang/mono-2.10.8
framework. simply running the map editor failed because the DLL was missing.
Code:
$ wine s25edit.exe
err:module:import_dll Library SDL.dll (which is needed by L"Z:\\home\\afri\\Desktop\\s25edit.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\home\\afri\\Desktop\\s25edit.exe" failed, status c0000135
i copied the DLL to
Code:
~\.wine\drive_c\windows\system\
and wine recognized the library. but running the editor now still does not work.
Code:
$ wine s25edit.exe
Return to the Roots Mapeditor

Initializing SDL...fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0080: stub!
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0001: stub!

Create Window...
Loading file: /GFX/PICS/SETUP997.LBM...failure
Try to load file: /GFX/PICS/SETUP998.LBM instead...failure
what is that LBM stuff?

any ideas?

Editiert von qpx am 16.09.2012 17:16

Parasit am 16.09.2012 17:50 #10590

RTTR-Doofie
anscheinend ist der GFX Ordner samt Inhalt nicht vorhanden, du startest den editor doch im Siedler-Ordner oder?

---
>> My Youtube Channel <<



Editiert von Parasit am 16.09.2012 17:54

qpx am 16.09.2012 20:39 #10595


Zitat von Parasit:
anscheinend ist der GFX Ordner samt Inhalt nicht vorhanden, du startest den editor doch im Siedler-Ordner oder?
tatsächlich habe ich den editor nicht aus dem S2 ordner gestartet. allerdings jetzt, wenn ich den aus dem S2 ordner starte bekomme ich die gleiche meldung.
Code:
~ $ wine /opt/s25rttr/share/s25rttr/S2/s25edit.exe
Return to the Roots Mapeditor

Initializing SDL...fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0080: stub!
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0001: stub!

Create Window...
Loading file: /GFX/PICS/SETUP997.LBM...failure
Try to load file: /GFX/PICS/SETUP998.LBM instead...failure
Code:
~ $ ls /opt/s25rttr/share/s25rttr/S2/
DATA  DOS4GW.EXE  DRIVERS  Extra Welten  GFX  INSTALL.BAT  INSTALL.SCR  NEWS.TXT
put your S2-Installation in here  README.TXT  ROOT  s25edit.exe  SAVE  SETUP.EXE
VIDEO  WORLDS
Code:
~ $ ls /opt/s25rttr/share/s25rttr/S2/GFX/PICS/
INSTALL.LBM  SETUP000.LBM  SETUP011.LBM  SETUP013.LBM  SETUP015.LBM  SETUP667.LBM
SETUP802.LBM  SETUP804.LBM  SETUP806.LBM  SETUP811.LBM  SETUP896.LBM  SETUP898.LBM
SETUP900.LBM  SETUP997.LBM  WORLDMSK.LBM  MISSION  SETUP010.LBM  SETUP012.LBM  
SETUP014.LBM  SETUP666.LBM  SETUP801.LBM  SETUP803.LBM  SETUP805.LBM  SETUP810.LBM
SETUP895.LBM  SETUP897.LBM  SETUP899.LBM  SETUP990.LBM  WORLD.LBM
ich vermute das die .exe hier nicht mit dem linux dateisystem klar kommt.


Spike am 16.09.2012 20:44 #10596

Im Ruhestand
haste siedler 2 + missions cd? wenn ja probier siedler 2 gold

---



Quorzom am 16.09.2012 21:29 #10597


Sonst versuch mal einen extra Ordner im /home verzeichnis zu machen, extra für den Editor. Eben mit DATA, GFX und WORLDS als Inhalt. So
hab ich es bei mir gemacht. Läuft einwandfrei mit Wine!

Edit: Glaub auch, dass Wine mit Ordnern Probleme hat, die nicht in /home sind.

Editiert von Quorzom am 16.09.2012 21:31

Matthias am 18.09.2012 17:23 #10622


It is written in C++. There is no build system just a http://www.codeblocks.org/ project file. I had to install gcc-c++, SDL-devel on openSUSE and it compiled without problems. Copied it to /usr/share/s25rttr/S2/ then, but can't get it to work because it fails to read /DATA/EDITRES.IDX

Update: it works when I copy the s25edit in the Settlers II Gold Edition main directory.

Editiert von Matthias am 18.09.2012 17:29

qpx am 19.09.2012 14:45 #10628


Zitat von Spike:
haste siedler 2 + missions cd? wenn ja probier siedler 2 gold
hab gold edition.
Zitat von Quorzom:
Sonst versuch mal einen extra Ordner im /home verzeichnis zu machen, extra für den Editor. Eben mit DATA, GFX und WORLDS als Inhalt. So
hab ich es bei mir gemacht. Läuft einwandfrei mit Wine!

Edit: Glaub auch, dass Wine mit Ordnern Probleme hat, die nicht in /home sind.
habs auch unter ~/ versucht, gleiches problem.


Shen Long am 28.09.2012 03:06 #10660


Zitat von qpx:

Zitat von Spike:
haste siedler 2 + missions cd? wenn ja probier siedler 2 gold
hab gold edition.
Zitat von Quorzom:
Sonst versuch mal einen extra Ordner im /home verzeichnis zu machen, extra für den Editor. Eben mit
DATA, GFX und WORLDS als Inhalt. So
hab ich es bei mir gemacht. Läuft einwandfrei mit Wine!

Edit: Glaub auch, dass Wine mit Ordnern Probleme hat, die nicht in /home sind.
habs auch unter ~/ versucht,
gleiches problem.


Den aktuellen Ordner nimmt wine als "Ausführen in" oder so ähnlich. also in der Konsole cd ~/rttreditor && wine
./editor.exe (Ich weiß nciht wie das genau heißt.)

---
mfg Shen Long
Tuxer mit Leib und Seele
__________________________
"Linux will nicht die Weltherrschaft, aber schön wärs schon." Linus Torvalds
PS: Sorry for my bad English


~Matthias am 28.09.2012 20:19 #10661


Warum emuliert ihr ein Programm, dass sich nativ kompilieren lässt mit Wine. Das macht überhaupt keinen Sinn.


qpx am 11.10.2012 10:46 #10736


Zitat von Matthias:

Warum emuliert ihr ein Programm, dass sich nativ kompilieren lässt mit Wine. Das macht überhaupt keinen Sinn.


There is no makefile and no hints on dependencies... :/


Matthias am 20.10.2012 16:01 #10776


I used http://cbp2make.sourceforge.net/ to generate a Makefile. The only dependency seems to be SDL, but I am not sure.

Code:

#------------------------------------------------------------------------------#
# This makefile was generated by 'cbp2make' tool rev.137                       #
#------------------------------------------------------------------------------#


WORKDIR = `pwd`

CC = gcc
CXX = g++
AR = ar
LD = g++
WINDRES = windres

INC =
CFLAGS =  -Wall
RESINC =
LIBDIR =
LIB =
LDFLAGS =

INC_RELEASE =  $(INC)
CFLAGS_RELEASE =  $(CFLAGS) -Wextra -Wall
RESINC_RELEASE =  $(RESINC)
RCFLAGS_RELEASE =  $(RCFLAGS)
LIBDIR_RELEASE =  $(LIBDIR)
LIB_RELEASE = $(LIB)
LDFLAGS_RELEASE =  $(LDFLAGS) -s -lSDLmain -lSDL
OBJDIR_RELEASE = obj
DEP_RELEASE =
OUT_RELEASE = bin/s25edit

OBJ_RELEASE = $(OBJDIR_RELEASE)/SGE/sge_shape.o $(OBJDIR_RELEASE)/SGE/sge_blib.o $(OBJDIR_RELEASE)/SGE/sge_bm_text.o $(OBJDIR_RELEASE)/SGE/sge_collision.o $(OBJDIR_RELEASE)/SGE/sge_misc.o $(OBJDIR_RELEASE)/SGE/sge_primitives.o $(OBJDIR_RELEASE)/SGE/sge_rotation.o $(OBJDIR_RELEASE)/SGE/sge_surface.o $(OBJDIR_RELEASE)/SGE/sge_textpp.o $(OBJDIR_RELEASE)/SGE/sge_tt_text.o $(OBJDIR_RELEASE)/callbacks.o $(OBJDIR_RELEASE)/globals.o $(OBJDIR_RELEASE)/CIO/CMenu.o $(OBJDIR_RELEASE)/CGame.o $(OBJDIR_RELEASE)/CGame_Cleanup.o $(OBJDIR_RELEASE)/CGame_Event.o $(OBJDIR_RELEASE)/CGame_GameLoop.o $(OBJDIR_RELEASE)/CGame_Init.o $(OBJDIR_RELEASE)/CGame_Render.o $(OBJDIR_RELEASE)/CIO/CButton.o $(OBJDIR_RELEASE)/CIO/CFile.o $(OBJDIR_RELEASE)/CIO/CFont.o $(OBJDIR_RELEASE)/CDebug.o $(OBJDIR_RELEASE)/CIO/CPicture.o $(OBJDIR_RELEASE)/CIO/CSelectBox.o $(OBJDIR_RELEASE)/CIO/CTextfield.o $(OBJDIR_RELEASE)/CIO/CWindow.o $(OBJDIR_RELEASE)/CMap.o $(OBJDIR_RELEASE)/CSurface.o

all: release

clean: clean_release

before_release:
    test -d bin || mkdir -p bin
    test -d $(OBJDIR_RELEASE)/SGE || mkdir -p $(OBJDIR_RELEASE)/SGE
    test -d $(OBJDIR_RELEASE) || mkdir -p $(OBJDIR_RELEASE)
    test -d $(OBJDIR_RELEASE)/CIO || mkdir -p $(OBJDIR_RELEASE)/CIO

after_release:

release: before_release out_release after_release

out_release: $(OBJ_RELEASE) $(DEP_RELEASE)
    $(LD) $(LDFLAGS_RELEASE) $(LIBDIR_RELEASE) $(OBJ_RELEASE) $(LIB_RELEASE) -o $(OUT_RELEASE)

$(OBJDIR_RELEASE)/SGE/sge_shape.o: SGE/sge_shape.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_shape.cpp -o $(OBJDIR_RELEASE)/SGE/sge_shape.o

$(OBJDIR_RELEASE)/SGE/sge_blib.o: SGE/sge_blib.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_blib.cpp -o $(OBJDIR_RELEASE)/SGE/sge_blib.o

$(OBJDIR_RELEASE)/SGE/sge_bm_text.o: SGE/sge_bm_text.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_bm_text.cpp -o $(OBJDIR_RELEASE)/SGE/sge_bm_text.o

$(OBJDIR_RELEASE)/SGE/sge_collision.o: SGE/sge_collision.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_collision.cpp -o $(OBJDIR_RELEASE)/SGE/sge_collision.o

$(OBJDIR_RELEASE)/SGE/sge_misc.o: SGE/sge_misc.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_misc.cpp -o $(OBJDIR_RELEASE)/SGE/sge_misc.o

$(OBJDIR_RELEASE)/SGE/sge_primitives.o: SGE/sge_primitives.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_primitives.cpp -o $(OBJDIR_RELEASE)/SGE/sge_primitives.o

$(OBJDIR_RELEASE)/SGE/sge_rotation.o: SGE/sge_rotation.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_rotation.cpp -o $(OBJDIR_RELEASE)/SGE/sge_rotation.o

$(OBJDIR_RELEASE)/SGE/sge_surface.o: SGE/sge_surface.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_surface.cpp -o $(OBJDIR_RELEASE)/SGE/sge_surface.o

$(OBJDIR_RELEASE)/SGE/sge_textpp.o: SGE/sge_textpp.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_textpp.cpp -o $(OBJDIR_RELEASE)/SGE/sge_textpp.o

$(OBJDIR_RELEASE)/SGE/sge_tt_text.o: SGE/sge_tt_text.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c SGE/sge_tt_text.cpp -o $(OBJDIR_RELEASE)/SGE/sge_tt_text.o

$(OBJDIR_RELEASE)/callbacks.o: callbacks.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c callbacks.cpp -o $(OBJDIR_RELEASE)/callbacks.o

$(OBJDIR_RELEASE)/globals.o: globals.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c globals.cpp -o $(OBJDIR_RELEASE)/globals.o

$(OBJDIR_RELEASE)/CIO/CMenu.o: CIO/CMenu.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CIO/CMenu.cpp -o $(OBJDIR_RELEASE)/CIO/CMenu.o

$(OBJDIR_RELEASE)/CGame.o: CGame.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CGame.cpp -o $(OBJDIR_RELEASE)/CGame.o

$(OBJDIR_RELEASE)/CGame_Cleanup.o: CGame_Cleanup.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CGame_Cleanup.cpp -o $(OBJDIR_RELEASE)/CGame_Cleanup.o

$(OBJDIR_RELEASE)/CGame_Event.o: CGame_Event.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CGame_Event.cpp -o $(OBJDIR_RELEASE)/CGame_Event.o

$(OBJDIR_RELEASE)/CGame_GameLoop.o: CGame_GameLoop.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CGame_GameLoop.cpp -o $(OBJDIR_RELEASE)/CGame_GameLoop.o

$(OBJDIR_RELEASE)/CGame_Init.o: CGame_Init.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CGame_Init.cpp -o $(OBJDIR_RELEASE)/CGame_Init.o

$(OBJDIR_RELEASE)/CGame_Render.o: CGame_Render.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CGame_Render.cpp -o $(OBJDIR_RELEASE)/CGame_Render.o

$(OBJDIR_RELEASE)/CIO/CButton.o: CIO/CButton.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CIO/CButton.cpp -o $(OBJDIR_RELEASE)/CIO/CButton.o

$(OBJDIR_RELEASE)/CIO/CFile.o: CIO/CFile.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CIO/CFile.cpp -o $(OBJDIR_RELEASE)/CIO/CFile.o

$(OBJDIR_RELEASE)/CIO/CFont.o: CIO/CFont.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CIO/CFont.cpp -o $(OBJDIR_RELEASE)/CIO/CFont.o

$(OBJDIR_RELEASE)/CDebug.o: CDebug.cpp
    $(CC) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CDebug.cpp -o $(OBJDIR_RELEASE)/CDebug.o

$(OBJDIR_RELEASE)/CIO/CPicture.o: CIO/CPicture.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CIO/CPicture.cpp -o $(OBJDIR_RELEASE)/CIO/CPicture.o

$(OBJDIR_RELEASE)/CIO/CSelectBox.o: CIO/CSelectBox.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CIO/CSelectBox.cpp -o $(OBJDIR_RELEASE)/CIO/CSelectBox.o

$(OBJDIR_RELEASE)/CIO/CTextfield.o: CIO/CTextfield.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CIO/CTextfield.cpp -o $(OBJDIR_RELEASE)/CIO/CTextfield.o

$(OBJDIR_RELEASE)/CIO/CWindow.o: CIO/CWindow.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CIO/CWindow.cpp -o $(OBJDIR_RELEASE)/CIO/CWindow.o

$(OBJDIR_RELEASE)/CMap.o: CMap.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CMap.cpp -o $(OBJDIR_RELEASE)/CMap.o

$(OBJDIR_RELEASE)/CSurface.o: CSurface.cpp
    $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CSurface.cpp -o $(OBJDIR_RELEASE)/CSurface.o

clean_release:
    rm -f $(OBJ_RELEASE) $(OUT_RELEASE)
    rm -rf bin
    rm -rf $(OBJDIR_RELEASE)/SGE
    rm -rf $(OBJDIR_RELEASE)
    rm -rf $(OBJDIR_RELEASE)/CIO

.PHONY: before_release after_release clean_release




Xaser am 08.11.2012 16:33 #10822


I recommend to use CodeBlocks, even with Linux. As far as i remember the mouse should work with Linux but i am not sure. The only necessary library is SDL. I have tested compiling and starting with Ubuntu and it worked fine.

This:
Create Window...
Loading file: /GFX/PICS/SETUP997.LBM...failure
Try to load file: /GFX/PICS/SETUP998.LBM instead...failure

means that there is no Gold Edition, so SETUP997.LBM (one of the pictures for loading screens or menu background) is missing. The editor tries to load SETUP998.LBM instead (settlers 2 + mission cd), if this file is missing too, it crashes.




Feel free to post in English!

Antwort schreiben