initial 8Kingdoms import
This commit is contained in:
parent
cfa6f0b12a
commit
d07f28267f
8 changed files with 6253 additions and 0 deletions
|
|
@ -0,0 +1 @@
|
||||||
|
8Kingdoms-1.1.0.tar.gz
|
||||||
148
8Kingdoms-1.1.0-64bit.patch
Normal file
148
8Kingdoms-1.1.0-64bit.patch
Normal file
|
|
@ -0,0 +1,148 @@
|
||||||
|
diff -ur 8Kingdoms-1.1.0/gui/contexts/Game.cpp 8Kingdoms-1.1.0.new/gui/contexts/Game.cpp
|
||||||
|
--- 8Kingdoms-1.1.0/gui/contexts/Game.cpp 2007-07-22 03:32:57.000000000 +0200
|
||||||
|
+++ 8Kingdoms-1.1.0.new/gui/contexts/Game.cpp 2007-11-24 22:44:14.000000000 +0100
|
||||||
|
@@ -3216,7 +3216,7 @@
|
||||||
|
else
|
||||||
|
ei = GAME_EVENT(iPlayerOnTurn, eitUnitMembersDied, hid, rmtxti->getWChar(wtemp, LABEL_MAX_LENGTH, TEXT_EVENT_UNHEALEDMEN));
|
||||||
|
ei->data1 = (void*)u;
|
||||||
|
- ei->data2 = *((void**)&count);
|
||||||
|
+ ei->data2 = (void*)count;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
u->membersDied(count);
|
||||||
|
diff -ur 8Kingdoms-1.1.0/net/netinit.cpp 8Kingdoms-1.1.0.new/net/netinit.cpp
|
||||||
|
--- 8Kingdoms-1.1.0/net/netinit.cpp 2007-07-22 03:32:59.000000000 +0200
|
||||||
|
+++ 8Kingdoms-1.1.0.new/net/netinit.cpp 2007-11-24 22:43:29.000000000 +0100
|
||||||
|
@@ -325,7 +325,7 @@
|
||||||
|
if (freeprofilename==0) // pokud takovy profil neni uz pripojen
|
||||||
|
{
|
||||||
|
net_server->startPing(from);
|
||||||
|
- KSendMessage(RQUEUE,MSG_NEW_CONNECTION_ACCEPTED,MOD_NET,MOD_NET,*((void**)(&from)));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_NEW_CONNECTION_ACCEPTED,MOD_NET,MOD_NET,(void*)from);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@@ -379,8 +379,8 @@
|
||||||
|
int from = new_connection_info->msgFrom();
|
||||||
|
net_server->stopAnnouncingMissingPlayers();
|
||||||
|
net_server->startPing(from);
|
||||||
|
- KSendMessage(RQUEUE,MSG_CLIENT_HAS_RECONNECTED,MOD_NET,BROADCAST,*((void**)(&from)));
|
||||||
|
- KSendMessage(RQUEUE,MSG_CLIENT_RECONNECTION_ACCEPTED,MOD_NET,MOD_NET,*((void**)(&from)));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_CLIENT_HAS_RECONNECTED,MOD_NET,BROADCAST,(void*)from);
|
||||||
|
+ KSendMessage(RQUEUE,MSG_CLIENT_RECONNECTION_ACCEPTED,MOD_NET,MOD_NET,(void*)from);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -435,9 +435,9 @@
|
||||||
|
net_client->addClientInfo(ni);
|
||||||
|
}
|
||||||
|
if (msgId==MSG_CLIENT_RECONNECTION_INFO)
|
||||||
|
- KSendMessage(RQUEUE,MSG_CLIENT_RECONNECTION_REPORT,MOD_NET,BROADCAST,*((void**)(&(ni->clientid))));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_CLIENT_RECONNECTION_REPORT,MOD_NET,BROADCAST,(void*)(ni->clientid));
|
||||||
|
else
|
||||||
|
- KSendMessage(RQUEUE,MSG_NEW_CONNECTION_REPORT,MOD_NET,BROADCAST,*((void**)(&(ni->clientid))));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_NEW_CONNECTION_REPORT,MOD_NET,BROADCAST,(void*)(ni->clientid));
|
||||||
|
|
||||||
|
delete(new_connetion_info);
|
||||||
|
KMemFree(ni);
|
||||||
|
@@ -489,7 +489,7 @@
|
||||||
|
{
|
||||||
|
net_client->removeClientInfo(who);
|
||||||
|
}
|
||||||
|
- KSendMessage(RQUEUE,MSG_CLIENT_DISCONNECTION_REPORT,MOD_NET,BROADCAST,*((void**)(&who)));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_CLIENT_DISCONNECTION_REPORT,MOD_NET,BROADCAST,(void*)who);
|
||||||
|
delete(message);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
diff -ur 8Kingdoms-1.1.0/net/server.cpp 8Kingdoms-1.1.0.new/net/server.cpp
|
||||||
|
--- 8Kingdoms-1.1.0/net/server.cpp 2007-07-22 03:32:59.000000000 +0200
|
||||||
|
+++ 8Kingdoms-1.1.0.new/net/server.cpp 2007-11-24 22:42:03.000000000 +0100
|
||||||
|
@@ -259,7 +259,7 @@
|
||||||
|
|
||||||
|
// In case in profile is set to announce and is not currently announcing
|
||||||
|
|
||||||
|
- KSendMessage(RQUEUE,MSG_CLIENT_DISCONNECTION_ACCEPTED,MOD_NET,MOD_NET,*((void**)(&id)));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_CLIENT_DISCONNECTION_ACCEPTED,MOD_NET,MOD_NET,(void*)id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@@ -345,7 +345,7 @@
|
||||||
|
// printf("Socket se zavrel - klient %i\n",i);
|
||||||
|
if (that->status!=STATUS_ENDING)
|
||||||
|
{
|
||||||
|
- KSendMessage(RQUEUE,MSG_CLIENT_HAS_DISCONNECTED,MOD_NET,BROADCAST,*((void**)(&i)));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_CLIENT_HAS_DISCONNECTED,MOD_NET,BROADCAST,(void*)i);
|
||||||
|
that->clientDisconnected(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -655,8 +655,8 @@
|
||||||
|
GLOBALLOGID(PRIORITY_NEW_CONNECTION, "Server - A local client having id %i has connected, free space: %i",(*client)->clientid,this->getFreeClientCount());
|
||||||
|
// printf("\nKlient se pripojil id %i, port %i, volne: %i",(*client)->clientid,(*client)->fd,this->getFreeClientCount());
|
||||||
|
|
||||||
|
- KSendMessage(RQUEUE,MSG_LOCAL_CLIENT_ADDED,MOD_NET,MOD_NET,*((void**)(&((*client)->clientid))));
|
||||||
|
- KSendMessage(RQUEUE,MSG_NEW_CONNECTION_ACCEPTED,MOD_NET,MOD_NET,*((void**)(&((*client)->clientid))));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_LOCAL_CLIENT_ADDED,MOD_NET,MOD_NET,(void*)((*client)->clientid));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_NEW_CONNECTION_ACCEPTED,MOD_NET,MOD_NET,(void*)((*client)->clientid));
|
||||||
|
|
||||||
|
this->unlock();
|
||||||
|
return 1;
|
||||||
|
@@ -1223,7 +1223,7 @@
|
||||||
|
{
|
||||||
|
that->unlock();
|
||||||
|
if (that->status!=STATUS_ENDING)
|
||||||
|
- KSendMessage(RQUEUE,MSG_CLIENT_HAS_DISCONNECTED,MOD_NET,BROADCAST,*((void**)(&i)));
|
||||||
|
+ KSendMessage(RQUEUE,MSG_CLIENT_HAS_DISCONNECTED,MOD_NET,BROADCAST,(void*)i);
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
that->lock();
|
||||||
|
diff -ur 8Kingdoms-1.1.0/world/world_server.cpp 8Kingdoms-1.1.0.new/world/world_server.cpp
|
||||||
|
--- 8Kingdoms-1.1.0/world/world_server.cpp 2007-07-22 03:33:12.000000000 +0200
|
||||||
|
+++ 8Kingdoms-1.1.0.new/world/world_server.cpp 2007-11-24 22:45:14.000000000 +0100
|
||||||
|
@@ -2032,7 +2032,7 @@
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_PLAYERS; i++)
|
||||||
|
{
|
||||||
|
- if (game_start_disconnections[i] == ((int) p))
|
||||||
|
+ if (game_start_disconnections[i] == ((long) p))
|
||||||
|
{
|
||||||
|
game_start_disconnections[i] = 0;
|
||||||
|
break;
|
||||||
|
@@ -2043,7 +2043,7 @@
|
||||||
|
else if (world_server->state == WSS_GAME_STARTED)
|
||||||
|
{
|
||||||
|
// Hra jiz bezi, tedy doslo k znovu pripojeni
|
||||||
|
- int client_id = (int)p;
|
||||||
|
+ int client_id = (long)p;
|
||||||
|
for (TPlayerIterator it = world_server->world.players.begin(); it != world_server->world.players.end(); it++)
|
||||||
|
{
|
||||||
|
int temp=it->second->data().client_data.oldclient_id;
|
||||||
|
@@ -2099,7 +2099,7 @@
|
||||||
|
// Az skonci nahravani hry, odpojeni klienta se vyresi dodatecne
|
||||||
|
for (int i = 0; i < MAX_PLAYERS; i++)
|
||||||
|
if (game_start_disconnections[i] == 0)
|
||||||
|
- game_start_disconnections[i] = (int)p;
|
||||||
|
+ game_start_disconnections[i] = (long)p;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (world_server->state < WSS_GAME_STARTED) {
|
||||||
|
@@ -2110,7 +2110,7 @@
|
||||||
|
}
|
||||||
|
else if (world_server->state == WSS_GAME_STARTED) {
|
||||||
|
// Hra jiz bezi
|
||||||
|
- int client_id = (int)p;
|
||||||
|
+ int client_id = (long)p;
|
||||||
|
for (TPlayerIterator it = world_server->world.players.begin(); it != world_server->world.players.end(); it++) {
|
||||||
|
if (it->second->data().client_data.client_id == client_id) {
|
||||||
|
// odpojil se hrac it->first
|
||||||
|
diff -up 8Kingdoms-1.1.0/net/server.cpp~ 8Kingdoms-1.1.0/net/server.cpp
|
||||||
|
--- 8Kingdoms-1.1.0/net/server.cpp~ 2007-11-24 22:57:18.000000000 +0100
|
||||||
|
+++ 8Kingdoms-1.1.0/net/server.cpp 2007-11-24 22:57:18.000000000 +0100
|
||||||
|
@@ -415,7 +415,7 @@ int accept_thread(void * data)
|
||||||
|
#ifdef WIN32
|
||||||
|
int sin_size = sizeof(struct sockaddr_in); // Windows chteji do accept int
|
||||||
|
#else
|
||||||
|
- size_t sin_size = sizeof(struct sockaddr_in);
|
||||||
|
+ socklen_t sin_size = sizeof(struct sockaddr_in);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int s;
|
||||||
33
8Kingdoms-1.1.0-locking.patch
Normal file
33
8Kingdoms-1.1.0-locking.patch
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
diff -up 8Kingdoms-1.1.0/world/world_engine.cpp~ 8Kingdoms-1.1.0/world/world_engine.cpp
|
||||||
|
--- 8Kingdoms-1.1.0/world/world_engine.cpp~ 2007-12-02 12:43:53.000000000 +0100
|
||||||
|
+++ 8Kingdoms-1.1.0/world/world_engine.cpp 2007-12-02 12:43:53.000000000 +0100
|
||||||
|
@@ -1214,7 +1214,10 @@ int TWorldServerEngine::unitMove(int uni
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!can_move)
|
||||||
|
+ {
|
||||||
|
+ unlock();
|
||||||
|
return ERR_NotOperational;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
TPacket_RCT_UNIT_MOVE * packet = new TPacket_RCT_UNIT_MOVE();
|
||||||
|
packet->unit_id = unit_id;
|
||||||
|
diff -up 8Kingdoms-1.1.0/world/world_client.cpp~ 8Kingdoms-1.1.0/world/world_client.cpp
|
||||||
|
--- 8Kingdoms-1.1.0/world/world_client.cpp~ 2007-12-02 12:09:28.000000000 +0100
|
||||||
|
+++ 8Kingdoms-1.1.0/world/world_client.cpp 2007-12-02 12:09:28.000000000 +0100
|
||||||
|
@@ -321,6 +321,7 @@ RVAL WORLD_CLIENT_MSG_HANDLER(MESSAGE_ID
|
||||||
|
|
||||||
|
if (world_client[i]->state == WCS_GAME_ENDED && action_type == AT_ENDGAME) {
|
||||||
|
// zprava o ukonceni hry pro jiz ukoncenou hru - ignoruji
|
||||||
|
+ world_client_mutex.unlock();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (!(((action_type == AT_GAME_START) && (world_client[i]->state >= WCS_WORLD_INITIALIZED) && (world_client[i]->state < WCS_GAME_STARTED))
|
||||||
|
@@ -328,6 +329,7 @@ RVAL WORLD_CLIENT_MSG_HANDLER(MESSAGE_ID
|
||||||
|
(world_client[i]->state == WCS_GAME_STARTED)
|
||||||
|
)) {
|
||||||
|
// zprava prisla v nevhodnou chvili - ignoruji
|
||||||
|
+ world_client_mutex.unlock();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
7
8Kingdoms.desktop
Normal file
7
8Kingdoms.desktop
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=8 Kingdoms
|
||||||
|
Comment=A 3D turn-based fantasy strategic game
|
||||||
|
Exec=8Kingdoms-wrapper
|
||||||
|
Icon=8Kingdoms
|
||||||
|
Type=Application
|
||||||
|
Categories=Game;StrategyGame;
|
||||||
BIN
8Kingdoms.png
Normal file
BIN
8Kingdoms.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
112
8Kingdoms.spec
Normal file
112
8Kingdoms.spec
Normal file
|
|
@ -0,0 +1,112 @@
|
||||||
|
# Copyright (c) 2007 oc2pus <toni@links2linux.de>
|
||||||
|
# Copyright (c) 2007 Hans de Goede <j.w.r.degoede@hhs.nl>
|
||||||
|
# This file and all modifications and additions to the pristine
|
||||||
|
# package are under the same license as the package itself.
|
||||||
|
|
||||||
|
Name: 8Kingdoms
|
||||||
|
Version: 1.1.0
|
||||||
|
Release: 2%{?dist}
|
||||||
|
Summary: 8 Kingdoms is a 3D turn-based fantasy strategic game
|
||||||
|
Group: Amusements/Games
|
||||||
|
License: GPL+
|
||||||
|
URL: http://kralovstvi.sourceforge.net/
|
||||||
|
# This is:
|
||||||
|
# http://downloads.sourceforge.net/kralovstvi/%{name}-%{version}.tar.gz
|
||||||
|
# With external/extgl.h removed, as that contains parts of Windows gl.h and
|
||||||
|
# parts of a version of glext.h which falls under the "SGI Free Software
|
||||||
|
# License B", neither which are Free software.
|
||||||
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
# This is a Free replacement file with the troublesome parts replaced with
|
||||||
|
# parts from Mesa's gl.h and from The Kronos Group glext.h .
|
||||||
|
Source1: extgl.h
|
||||||
|
Source2: %{name}.desktop
|
||||||
|
Source3: %{name}.png
|
||||||
|
Patch0: 8Kingdoms-1.1.0-64bit.patch
|
||||||
|
Patch1: 8Kingdoms-1.1.0-locking.patch
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
BuildRequires: expat-devel SDL_mixer-devel tcl-devel desktop-file-utils
|
||||||
|
Requires: hicolor-icon-theme opengl-games-utils
|
||||||
|
|
||||||
|
%description
|
||||||
|
8 Kingdoms is a 3D turn-based fantasy strategic game in which
|
||||||
|
players become kings, build their empires and conquer enemy
|
||||||
|
kingdoms.
|
||||||
|
|
||||||
|
Theme of the game 8 Kingdoms is inspirated by the world of fantasy.
|
||||||
|
Players play on a fully 3D hex map. They construct buildings,
|
||||||
|
recruit units including infantry, mounted units, mages, catapults
|
||||||
|
and finally they attack enemy or help allies. Units gain experiences
|
||||||
|
during the battle, each unit can get some abilities upgraded to be
|
||||||
|
stronger. Data are stored in XML and freely accessible - from
|
||||||
|
language versions to units' attributes, moreover map editor with
|
||||||
|
random map generator is included for comfortable map editing.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
cp -a %{SOURCE1} external
|
||||||
|
chmod -x doc/gui/gui_img1.png
|
||||||
|
# configure won't recognize --datadir ...
|
||||||
|
sed -i 's|games/8Kingdoms|share/8Kingdoms|g' configure
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
%configure
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
# And here we must explicitly set pkgdatadir despite our earlier sed!
|
||||||
|
make install DESTDIR=$RPM_BUILD_ROOT pkgdatadir=%{_datadir}/%{name}
|
||||||
|
ln -s opengl-game-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/%{name}-wrapper
|
||||||
|
|
||||||
|
# below is the desktop file and icon stuff.
|
||||||
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||||
|
desktop-file-install --vendor fedora \
|
||||||
|
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
|
||||||
|
%{SOURCE2}
|
||||||
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/96x96/apps
|
||||||
|
install -p -m 644 %{SOURCE3} \
|
||||||
|
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/96x96/apps
|
||||||
|
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
|
||||||
|
%post
|
||||||
|
touch --no-create %{_datadir}/icons/hicolor || :
|
||||||
|
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
|
||||||
|
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
%postun
|
||||||
|
touch --no-create %{_datadir}/icons/hicolor || :
|
||||||
|
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
|
||||||
|
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%doc AUTHORS ChangeLog COPYING README doc/*
|
||||||
|
%{_bindir}/%{name}*
|
||||||
|
%{_datadir}/%{name}
|
||||||
|
%{_datadir}/applications/fedora-%{name}.desktop
|
||||||
|
%{_datadir}/icons/hicolor/96x96/apps/%{name}.png
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Sun Dec 2 2007 Hans de Goede <j.w.r.degoede@hhs.nl> 1.1.0-2
|
||||||
|
- Replace BuildRequires expat with expat-devel (oops)
|
||||||
|
- Add a patch which stops 8Kingdoms from hanging in certain cases
|
||||||
|
- Use opengl-games-utils wrapper to show error dialog when DRI is missing
|
||||||
|
|
||||||
|
* Sat Nov 24 2007 Hans de Goede <j.w.r.degoede@hhs.nl> 1.1.0-1
|
||||||
|
- Adapted Packman specfile for Fedora
|
||||||
|
|
||||||
|
* Fri Aug 10 2007 Toni Graffy <toni@links2linux.de> - 1.1.0-0.pm.1
|
||||||
|
- initial build 1.1.0
|
||||||
1
sources
1
sources
|
|
@ -0,0 +1 @@
|
||||||
|
bf70d7d21281852250116ab6894a3c33 8Kingdoms-1.1.0.tar.gz
|
||||||
Reference in a new issue