[Scummvm-git-logs] scummvm master -> dd68bf0f183715127fbd6d2d4495d392e298a647
sev-
sev at scummvm.org
Tue Aug 30 23:27:37 CEST 2016
This automated email contains information about 17 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
7ac4bddfa9 HE: Add Moonbase Net dummy
4df16d6e12 HE: Add Moonbase logic ops stubs
aafc1ba145 HE: Add net_defines.h and a few stubs updates
d7377c43ed HE: Add getStringFromArray()
75c48fd195 HE: Replacing some Logic stubs with Net stubs
6cfcf1f179 HE: Add setupStringArrayFromString()
3c64e4958d SCUMM HE: Add some Moonbase logic
9de6746814 SCUMM HE: Replace strcpy with strlcpy in array setup
0ffca9c03a SCUMM HE: Fix some variable naming
da35b451d6 SCUMM HE: Add more LogicHEmoonbase kludges
0f82e2acdc SCUMM HE: Add two more kludges
c997612bfc SCUMM HE: Add a few more logic kludges
e70522e506 SCUMM HE: Add session-related kludges
e33c401f78 SCUMM HE: Add session quering-related kludges
5d9a3e17b2 SCUMM HE: Add provider-related kludges
45947f6ccc SCUMM HE: Add init-related kludges
dd68bf0f18 SCUMM HE: Add remote scripts-related kludges
Commit: 7ac4bddfa92b01df87437c5e25c78488b5d7f628
https://github.com/scummvm/scummvm/commit/7ac4bddfa92b01df87437c5e25c78488b5d7f628
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
HE: Add Moonbase Net dummy
Changed paths:
A engines/scumm/he/moonbase/net_main.cpp
A engines/scumm/he/moonbase/net_main.h
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/moonbase.cpp
engines/scumm/he/moonbase/moonbase.h
engines/scumm/module.mk
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 1b596fc..150a57e 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -24,6 +24,9 @@
#include "scumm/he/logic_he.h"
#include "scumm/he/moonbase/moonbase.h"
#include "scumm/he/moonbase/ai_main.h"
+#ifdef USE_SDL_NET
+#include "scumm/he/moonbase/net_main.h"
+#endif
namespace Scumm {
diff --git a/engines/scumm/he/moonbase/moonbase.cpp b/engines/scumm/he/moonbase/moonbase.cpp
index 15ababd..941f32d 100644
--- a/engines/scumm/he/moonbase/moonbase.cpp
+++ b/engines/scumm/he/moonbase/moonbase.cpp
@@ -23,6 +23,9 @@
#include "scumm/he/intern_he.h"
#include "scumm/he/moonbase/moonbase.h"
#include "scumm/he/moonbase/ai_main.h"
+#ifdef USE_SDL_NET
+#include "scumm/he/moonbase/net_main.h"
+#endif
namespace Scumm {
@@ -30,10 +33,16 @@ Moonbase::Moonbase(ScummEngine_v100he *vm) : _vm(vm) {
initFOW();
_ai = new AI(_vm);
+#ifdef USE_SDL_NET
+ _net = new Net(_vm);
+#endif
}
Moonbase::~Moonbase() {
delete _ai;
+#ifdef USE_SDL_NET
+ delete _net;
+#endif
}
int Moonbase::readFromArray(int array, int y, int x) {
diff --git a/engines/scumm/he/moonbase/moonbase.h b/engines/scumm/he/moonbase/moonbase.h
index 71c03cb..f3399ef 100644
--- a/engines/scumm/he/moonbase/moonbase.h
+++ b/engines/scumm/he/moonbase/moonbase.h
@@ -30,6 +30,7 @@
namespace Scumm {
class AI;
+class Net;
class Moonbase {
public:
@@ -71,6 +72,9 @@ public:
uint32 _fowSentinelConditionBits;
AI *_ai;
+#ifdef USE_SDL_NET
+ Net *_net;
+#endif
private:
ScummEngine_v100he *_vm;
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
new file mode 100644
index 0000000..554d0b0
--- /dev/null
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -0,0 +1,33 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "scumm/he/intern_he.h"
+#include "scumm/he/moonbase/moonbase.h"
+#include "scumm/he/moonbase/net_main.h"
+
+namespace Scumm {
+
+Net::Net(ScummEngine_v100he *vm) : _vm(vm) {
+ //some defaults for fields
+}
+
+} // End of namespace Scumm
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
new file mode 100644
index 0000000..0a3acc1
--- /dev/null
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef SCUMM_HE_MOONBASE_NET_MAIN_H
+#define SCUMM_HE_MOONBASE_NET_MAIN_H
+
+namespace Scumm {
+
+class ScummEngine_v100he;
+
+//this is a dummy based on ai_main.h Scumm::AI
+
+class Net {
+public:
+ Net(ScummEngine_v100he *vm);
+
+private:
+
+public:
+ //getters
+
+private:
+ //mostly getters
+
+public:
+ //fields
+
+ ScummEngine_v100he *_vm;
+};
+
+} // End of namespace Scumm
+
+#endif
diff --git a/engines/scumm/module.mk b/engines/scumm/module.mk
index 85ff1aa..fee61ec 100644
--- a/engines/scumm/module.mk
+++ b/engines/scumm/module.mk
@@ -150,6 +150,11 @@ MODULE_OBJS += \
he/moonbase/distortion.o \
he/moonbase/moonbase.o \
he/moonbase/moonbase_fow.o
+
+ifdef USE_SDL_NET
+MODULE_OBJS += \
+ he/moonbase/net_main.o
+endif
endif
# This module can be built as a plugin
Commit: 4df16d6e1255e627665294bf60da0fc3d3e5d9a4
https://github.com/scummvm/scummvm/commit/4df16d6e1255e627665294bf60da0fc3d3e5d9a4
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
HE: Add Moonbase logic ops stubs
Most of them return int, yet there are a few which don't return
anything. Stubs print a warning and return 1 (or nothing).
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 150a57e..89e1e95 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -57,6 +57,45 @@ private:
void op_ai_set_type(int op, int numArgs, int32 *args);
void op_ai_clean_up(int op, int numArgs, int32 *args);
+#ifdef USE_SDL_NET
+ void op_net_remote_start_script(int op, int numArgs, int32 *args);
+ void op_net_remote_send_array(int op, int numArgs, int32 *args);
+ int op_net_remote_start_function(int op, int numArgs, int32 *args);
+ int op_net_do_init_all(int op, int numArgs, int32 *args);
+ int op_net_do_init_provider(int op, int numArgs, int32 *args);
+ int op_net_do_init_session(int op, int numArgs, int32 *args);
+ int op_net_do_init_user(int op, int numArgs, int32 *args);
+ int op_net_query_providers(int op, int numArgs, int32 *args);
+ int op_net_get_provider_name(int op, int numArgs, int32 *args);
+ int op_net_set_provider(int op, int numArgs, int32 *args);
+ int op_net_close_provider(int op, int numArgs, int32 *args);
+ int op_net_start_query_sessions(int op, int numArgs, int32 *args);
+ int op_net_update_query_sessions(int op, int numArgs, int32 *args);
+ int op_net_stop_query_sessions(int op, int numArgs, int32 *args);
+ int op_net_query_sessions(int op, int numArgs, int32 *args);
+ int op_net_get_session_name(int op, int numArgs, int32 *args);
+ int op_net_get_session_player_count(int op, int numArgs, int32 *args);
+ int op_net_destroy_player(int op, int numArgs, int32 *args);
+ int op_net_get_player_long_name(int op, int numArgs, int32 *args);
+ int op_net_get_player_short_name(int op, int numArgs, int32 *args);
+ int op_net_create_session(int op, int numArgs, int32 *args);
+ int op_net_join_session(int op, int numArgs, int32 *args);
+ int op_net_end_session(int op, int numArgs, int32 *args);
+ int op_net_disable_session_player_join(int op, int numArgs, int32 *args);
+ int op_net_enable_session_player_join(int op, int numArgs, int32 *args);
+ int op_net_set_ai_player_count(int op, int numArgs, int32 *args);
+ int op_net_add_user(int op, int numArgs, int32 *args);
+ int op_net_remove_user(int op, int numArgs, int32 *args);
+ int op_net_who_sent_this(int op, int numArgs, int32 *args);
+ int op_net_who_am_i(int op, int numArgs, int32 *args);
+ int op_net_set_provider_by_name(int op, int numArgs, int32 *args);
+ void op_net_set_fake_latency(int op, int numArgs, int32 *args);
+ int op_net_get_host_name(int op, int numArgs, int32 *args);
+ int op_net_get_ip_from_name(int op, int numArgs, int32 *args);
+ int op_net_host_tcpip_game(int op, int numArgs, int32 *args);
+ int op_net_join_tcpip_game(int op, int numArgs, int32 *args);
+#endif
+
private:
ScummEngine_v100he *_vm1;
};
@@ -110,6 +149,7 @@ int LogicHEmoonbase::versionID() {
#define OP_NET_HOST_TCPIP_GAME 1517
#define OP_NET_JOIN_TCPIP_GAME 1518
#define OP_NET_SET_FAKE_LAG 1555
+#define OP_NET_SET_FAKE_LATENCY 1555 /* SET_FAKE_LAG is a valid alias for backwards compatibility */
#define OP_NET_GET_HOST_NAME 1556
#define OP_NET_GET_IP_FROM_NAME 1557
#define OP_NET_GET_SESSION_PLAYER_COUNT 1558
@@ -160,6 +200,86 @@ int32 LogicHEmoonbase::dispatch(int op, int numArgs, int32 *args) {
op_ai_clean_up(op, numArgs, args);
break;
+#ifdef USE_SDL_NET
+ case OP_NET_REMOTE_START_SCRIPT:
+ op_net_remote_start_script(op, numArgs, args);
+ break;
+ case OP_NET_REMOTE_SEND_ARRAY:
+ op_net_remote_send_array(op, numArgs, args);
+ break;
+ case OP_NET_REMOTE_START_FUNCTION:
+ return op_net_remote_start_function(op, numArgs, args);
+ case OP_NET_DO_INIT_ALL:
+ return op_net_do_init_all(op, numArgs, args);
+ case OP_NET_DO_INIT_PROVIDER:
+ return op_net_do_init_provider(op, numArgs, args);
+ case OP_NET_DO_INIT_SESSION:
+ return op_net_do_init_session(op, numArgs, args);
+ case OP_NET_DO_INIT_USER:
+ return op_net_do_init_user(op, numArgs, args);
+ case OP_NET_QUERY_PROVIDERS:
+ return op_net_query_providers(op, numArgs, args);
+ case OP_NET_GET_PROVIDER_NAME:
+ return op_net_get_provider_name(op, numArgs, args);
+ case OP_NET_SET_PROVIDER:
+ return op_net_set_provider(op, numArgs, args);
+ case OP_NET_CLOSE_PROVIDER:
+ return op_net_close_provider(op, numArgs, args);
+ case OP_NET_START_QUERY_SESSIONS:
+ return op_net_start_query_sessions(op, numArgs, args);
+ case OP_NET_UPDATE_QUERY_SESSIONS:
+ return op_net_update_query_sessions(op, numArgs, args);
+ case OP_NET_STOP_QUERY_SESSIONS:
+ return op_net_stop_query_sessions(op, numArgs, args);
+ case OP_NET_QUERY_SESSIONS:
+ return op_net_query_sessions(op, numArgs, args);
+ case OP_NET_GET_SESSION_NAME:
+ return op_net_get_session_name(op, numArgs, args);
+ case OP_NET_GET_SESSION_PLAYER_COUNT:
+ return op_net_get_session_player_count(op, numArgs, args);
+ case OP_NET_DESTROY_PLAYER:
+ return op_net_destroy_player(op, numArgs, args);
+#if 1 // 12/2/99 BPT
+ case OP_NET_GET_PLAYER_LONG_NAME:
+ return op_net_get_player_long_name(op, numArgs, args);
+ case OP_NET_GET_PLAYER_SHORT_NAME:
+ return op_net_get_player_short_name(op, numArgs, args);
+#endif
+ case OP_NET_CREATE_SESSION:
+ return op_net_create_session(op, numArgs, args);
+ case OP_NET_JOIN_SESSION:
+ return op_net_join_session(op, numArgs, args);
+ case OP_NET_END_SESSION:
+ return op_net_end_session(op, numArgs, args);
+ case OP_NET_DISABLE_SESSION_PLAYER_JOIN:
+ return op_net_disable_session_player_join(op, numArgs, args);
+ case OP_NET_ENABLE_SESSION_PLAYER_JOIN:
+ return op_net_enable_session_player_join(op, numArgs, args);
+ case OP_NET_SET_AI_PLAYER_COUNT:
+ return op_net_set_ai_player_count(op, numArgs, args);
+ case OP_NET_ADD_USER:
+ return op_net_add_user(op, numArgs, args);
+ case OP_NET_REMOVE_USER:
+ return op_net_remove_user(op, numArgs, args);
+ case OP_NET_WHO_SENT_THIS:
+ return op_net_who_sent_this(op, numArgs, args);
+ case OP_NET_WHO_AM_I:
+ return op_net_who_am_i(op, numArgs, args);
+ case OP_NET_SET_PROVIDER_BY_NAME:
+ return op_net_set_provider_by_name(op, numArgs, args);
+ case OP_NET_SET_FAKE_LATENCY: // SET_FAKE_LAG is a valid alias for backwards compatibility
+ op_net_set_fake_latency(op, numArgs, args);
+ break;
+ case OP_NET_GET_HOST_NAME:
+ return op_net_get_host_name(op, numArgs, args);
+ case OP_NET_GET_IP_FROM_NAME:
+ return op_net_get_ip_from_name(op, numArgs, args);
+ case OP_NET_HOST_TCPIP_GAME:
+ return op_net_host_tcpip_game(op, numArgs, args);
+ case OP_NET_JOIN_TCPIP_GAME:
+ return op_net_join_tcpip_game(op, numArgs, args);
+#endif
+
default:
LogicHE::dispatch(op, numArgs, args);
}
@@ -251,6 +371,153 @@ void LogicHEmoonbase::op_ai_clean_up(int op, int numArgs, int32 *args) {
_vm1->_moonbase->_ai->cleanUpAI();
}
+#ifdef USE_SDL_NET
+void LogicHEmoonbase::op_net_remote_start_script(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_remote_start_script()");
+}
+void LogicHEmoonbase::op_net_remote_send_array(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_remote_send_array()");
+}
+int LogicHEmoonbase::op_net_remote_start_function(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_remote_start_function()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_do_init_all(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_do_init_all()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_do_init_provider(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_do_init_provider()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_do_init_session(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_do_init_session()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_do_init_user(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_do_init_user()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_query_providers(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_query_providers()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_get_provider_name(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_get_provider_name()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_set_provider(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_set_provider()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_close_provider(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_close_provider()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_start_query_sessions(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_start_query_sessions()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_update_query_sessions(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_update_query_sessions()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_stop_query_sessions(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_stop_query_sessions()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_query_sessions(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_query_sessions()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_get_session_name(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_get_session_name()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_get_session_player_count(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_get_session_player_count()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_destroy_player(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_destroy_player()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_get_player_long_name(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_get_player_long_name()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_get_player_short_name(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_get_player_short_name()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_create_session(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_create_session()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_join_session(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_join_session()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_end_session(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_end_session()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_disable_session_player_join(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_disable_session_player_join()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_enable_session_player_join(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_enable_session_player_join()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_set_ai_player_count(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_set_ai_player_count()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_add_user(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_add_user()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_remove_user(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_remove_user()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_who_sent_this(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_who_sent_this()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_who_am_i(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_who_am_i()");
+ return 1;
+}
+
+int LogicHEmoonbase::op_net_set_provider_by_name(int op, int numArgs, int32 *args) {
+ // Parameter 1 is the provider name and
+ // Parameter 2 is the (optional) tcp/ip address
+ warning("STUB: op_net_set_provider_by_name()");
+ return 1;
+}
+void LogicHEmoonbase::op_net_set_fake_latency(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_set_fake_latency()");
+}
+int LogicHEmoonbase::op_net_get_host_name(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_get_host_name()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_get_ip_from_name(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_get_ip_from_name()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_host_tcpip_game(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_host_tcpip_game()");
+ return 1;
+}
+int LogicHEmoonbase::op_net_join_tcpip_game(int op, int numArgs, int32 *args) {
+ warning("STUB: op_net_join_tcpip_game()");
+ return 1;
+}
+#endif
+
LogicHE *makeLogicHEmoonbase(ScummEngine_v100he *vm) {
return new LogicHEmoonbase(vm);
}
Commit: aafc1ba145149b063c3c4f96c0f666eb98b522d5
https://github.com/scummvm/scummvm/commit/aafc1ba145149b063c3c4f96c0f666eb98b522d5
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
HE: Add net_defines.h and a few stubs updates
SPUTM_CStringArrayFromScummString is still has to be implemented to
finish those stubs.
Net now has joinGame() and hostGame(), which are not implemented yet.
Changed paths:
A engines/scumm/he/moonbase/net_defines.h
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 89e1e95..328d288 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -26,6 +26,7 @@
#include "scumm/he/moonbase/ai_main.h"
#ifdef USE_SDL_NET
#include "scumm/he/moonbase/net_main.h"
+#include "scumm/he/moonbase/net_defines.h"
#endif
namespace Scumm {
@@ -509,12 +510,24 @@ int LogicHEmoonbase::op_net_get_ip_from_name(int op, int numArgs, int32 *args) {
return 1;
}
int LogicHEmoonbase::op_net_host_tcpip_game(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_host_tcpip_game()");
- return 1;
+ char sessionName[MAX_SESSION_NAME];
+ char userName[MAX_PLAYER_NAME];
+
+ // TODO:
+ //SPUTM_CStringArrayFromScummString(args[0], sessionName, sizeof(sessionName));
+ //SPUTM_CStringArrayFromScummString(args[1], userName, sizeof(userName));
+
+ return _vm1->_moonbase->_net->hostGame(sessionName, userName);
}
int LogicHEmoonbase::op_net_join_tcpip_game(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_join_tcpip_game()");
- return 1;
+ char szIP[MAX_IP_SIZE];
+ char userName[MAX_PLAYER_NAME];
+
+ // TODO:
+ //SPUTM_CStringArrayFromScummString(args[0], szIP, sizeof(szIP));
+ //SPUTM_CStringArrayFromScummString(args[1], userName, sizeof(userName));
+
+ return _vm1->_moonbase->_net->joinGame(szIP, userName);
}
#endif
diff --git a/engines/scumm/he/moonbase/net_defines.h b/engines/scumm/he/moonbase/net_defines.h
new file mode 100644
index 0000000..130ca1d
--- /dev/null
+++ b/engines/scumm/he/moonbase/net_defines.h
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef SCUMM_HE_MOONBASE_NET_DEFINES_H
+#define SCUMM_HE_MOONBASE_NET_DEFINES_H
+
+namespace Scumm {
+
+// pnetwin.h
+
+#define PN_PRIORITY_HIGH 0x00000001
+
+#define PN_SENDTYPE_INDIVIDUAL 1
+#define PN_SENDTYPE_GROUP 2
+#define PN_SENDTYPE_HOST 3
+#define PN_SENDTYPE_ALL 4
+
+#define MAX_GAME_NAME 128 /* Used for the multiplayer networking code */
+#define MAX_PLAYER_NAME 128 /* Used for the multiplayer networking code */
+#define MAX_PROVIDER_NAME 128
+#define MAX_SESSION_NAME 128
+
+#define MAX_GAMES_POLLED 16
+#define MAX_PROVIDERS 16
+
+#define PACKETTYPE_REMOTESTARTSCRIPT 1
+#define PACKETTYPE_REMOTESTARTSCRIPTRETURN 2
+#define PACKETTYPE_REMOTESTARTSCRIPTRESULT 3
+#define PACKETTYPE_REMOTESENDSCUMMARRAY 4
+
+const int SESSION_ERROR = 0;
+const int USER_CREATED_SESSION = 1;
+const int USER_JOINED_SESSION = 2;
+
+const int TCPIP_PROVIDER = -1;
+const int NO_PROVIDER = -2;
+
+const int MAX_PACKET_SIZE = 4096; // bytes
+const int MAX_HOSTNAME_SIZE = 256;
+const int MAX_IP_SIZE = 32;
+const char LOCAL_HOST[] = "127.0.0.1"; //localhost
+
+#define NULL_IP ""; //no IP address (causes enumsessions to search local subnet)
+
+} // End of namespace Scumm
+
+#endif
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index 554d0b0..dc95303 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -30,4 +30,14 @@ Net::Net(ScummEngine_v100he *vm) : _vm(vm) {
//some defaults for fields
}
+int Net::hostGame(char *sessionName, char *userName) {
+ warning("STUB: op_net_host_tcpip_game()"); // PN_HostTCPIPGame
+ return 0;
+}
+
+int Net::joinGame(char *IP, char *userName) {
+ warning("STUB: Net::joinGame()"); // PN_JoinTCPIPGame
+ return 0;
+}
+
} // End of namespace Scumm
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 0a3acc1..4a7f898 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -33,6 +33,9 @@ class Net {
public:
Net(ScummEngine_v100he *vm);
+ int hostGame(char *sessionName, char *userName);
+ int joinGame(char *IP, char *userName);
+
private:
public:
Commit: d7377c43edb818580213b7da1e78b68647065e45
https://github.com/scummvm/scummvm/commit/d7377c43edb818580213b7da1e78b68647065e45
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
HE: Add getStringFromArray()
It's ARRAY_GetStringFromArray(), which was used in Moonbase networking
code as SPUTM_CStringArrayFromScummString().
Changed paths:
engines/scumm/he/intern_he.h
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/script_v72he.cpp
diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h
index c6abac3..95f6f2c 100644
--- a/engines/scumm/he/intern_he.h
+++ b/engines/scumm/he/intern_he.h
@@ -288,6 +288,7 @@ public:
virtual byte *getStringAddress(ResId idx);
virtual int setupStringArray(int size);
+ void getStringFromArray(int arrayNumber, char *buffer, int maxLength);
protected:
virtual void setupOpcodes();
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 328d288..9f86147 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -509,23 +509,23 @@ int LogicHEmoonbase::op_net_get_ip_from_name(int op, int numArgs, int32 *args) {
warning("STUB: op_net_get_ip_from_name()");
return 1;
}
+
int LogicHEmoonbase::op_net_host_tcpip_game(int op, int numArgs, int32 *args) {
char sessionName[MAX_SESSION_NAME];
char userName[MAX_PLAYER_NAME];
- // TODO:
- //SPUTM_CStringArrayFromScummString(args[0], sessionName, sizeof(sessionName));
- //SPUTM_CStringArrayFromScummString(args[1], userName, sizeof(userName));
+ _vm1->getStringFromArray(args[0], sessionName, sizeof(sessionName));
+ _vm1->getStringFromArray(args[1], userName, sizeof(userName));
return _vm1->_moonbase->_net->hostGame(sessionName, userName);
}
+
int LogicHEmoonbase::op_net_join_tcpip_game(int op, int numArgs, int32 *args) {
char szIP[MAX_IP_SIZE];
char userName[MAX_PLAYER_NAME];
- // TODO:
- //SPUTM_CStringArrayFromScummString(args[0], szIP, sizeof(szIP));
- //SPUTM_CStringArrayFromScummString(args[1], userName, sizeof(userName));
+ _vm1->getStringFromArray(args[0], szIP, sizeof(szIP));
+ _vm1->getStringFromArray(args[1], userName, sizeof(userName));
return _vm1->_moonbase->_net->joinGame(szIP, userName);
}
diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp
index d32eb76..1926751 100644
--- a/engines/scumm/he/script_v72he.cpp
+++ b/engines/scumm/he/script_v72he.cpp
@@ -1484,6 +1484,26 @@ void ScummEngine_v72he::writeFileFromArray(int slot, int32 resID) {
}
}
+void ScummEngine_v72he::getStringFromArray(int arrayNumber, char *buffer, int maxLength) {
+ // I'm not really sure it belongs here and not some other version
+ // this is ARRAY_GetStringFromArray() from ARRAYS.cpp of SPUTM
+
+ // this function makes a C-string out of <arrayNumber> contents
+
+ VAR(0) = arrayNumber; // it was 0 in original code, but I've seen ScummVM Moonbase code which uses VAR_U32_ARRAY_UNK
+
+ int i, ch;
+ for (i = 0; i < maxLength; ++i) {
+ if (!(ch = readArray(0, 0, i))) {
+ break;
+ }
+
+ buffer[i] = ch;
+ }
+
+ buffer[i] = 0;
+}
+
void ScummEngine_v72he::o72_writeFile() {
int32 resID = pop();
int slot = pop();
Commit: 75c48fd195e510167d02fdc603411fcee4343b00
https://github.com/scummvm/scummvm/commit/75c48fd195e510167d02fdc603411fcee4343b00
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
HE: Replacing some Logic stubs with Net stubs
Slowly moving kludge switch case contents into ScummVM Logic methods and
thus adding more Net stubs.
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 9f86147..7e77368 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -475,21 +475,23 @@ int LogicHEmoonbase::op_net_set_ai_player_count(int op, int numArgs, int32 *args
warning("STUB: op_net_set_ai_player_count()");
return 1;
}
+
int LogicHEmoonbase::op_net_add_user(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_add_user()");
- return 1;
+ char userName[MAX_PLAYER_NAME];
+ _vm1->getStringFromArray(args[0], userName, sizeof(userName));
+ return _vm1->_moonbase->_net->addUser(userName, userName);
}
+
int LogicHEmoonbase::op_net_remove_user(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_remove_user()");
- return 1;
+ return _vm1->_moonbase->_net->removeUser();
}
+
int LogicHEmoonbase::op_net_who_sent_this(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_who_sent_this()");
- return 1;
+ return _vm1->_moonbase->_net->whoSentThis();
}
+
int LogicHEmoonbase::op_net_who_am_i(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_who_am_i()");
- return 1;
+ return _vm1->_moonbase->_net->whoAmI();
}
int LogicHEmoonbase::op_net_set_provider_by_name(int op, int numArgs, int32 *args) {
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index dc95303..eb54250 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -31,12 +31,32 @@ Net::Net(ScummEngine_v100he *vm) : _vm(vm) {
}
int Net::hostGame(char *sessionName, char *userName) {
- warning("STUB: op_net_host_tcpip_game()"); // PN_HostTCPIPGame
+ warning("STUB: op_net_host_tcpip_game(\"%s\", \"%s\")", sessionName, userName); // PN_HostTCPIPGame
return 0;
}
int Net::joinGame(char *IP, char *userName) {
- warning("STUB: Net::joinGame()"); // PN_JoinTCPIPGame
+ warning("STUB: Net::joinGame(\"%s\", \"%s\")", IP, userName); // PN_JoinTCPIPGame
+ return 0;
+}
+
+int Net::addUser(char *shortName, char *longName) {
+ warning("STUB: Net::addUser(\"%s\", \"%s\")", shortName, longName); // PN_AddUser
+ return 0;
+}
+
+int Net::removeUser() {
+ warning("STUB: Net::removeUser()"); // PN_RemoveUser
+ return 0;
+}
+
+int Net::whoSentThis() {
+ warning("STUB: Net::whoSentThis()"); // PN_WhoSentThis
+ return 0;
+}
+
+int Net::whoAmI() {
+ warning("STUB: Net::whoAmI()"); // PN_WhoAmI
return 0;
}
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 4a7f898..f8c289c 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -35,7 +35,10 @@ public:
int hostGame(char *sessionName, char *userName);
int joinGame(char *IP, char *userName);
-
+ int addUser(char *shortName, char *longName);
+ int removeUser();
+ int whoSentThis();
+ int whoAmI();
private:
public:
Commit: 6cfcf1f1796c9d3125596666362ce5162fd406ae
https://github.com/scummvm/scummvm/commit/6cfcf1f1796c9d3125596666362ce5162fd406ae
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
HE: Add setupStringArrayFromString()
It's based on PUI_ScummStringArrayFromCString(), which is used as
SPUTM_ScummStringArrayFromCString() in Moonbase networking code.
Changed paths:
engines/scumm/he/intern_he.h
engines/scumm/he/script_v72he.cpp
diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h
index 95f6f2c..8d7ed81 100644
--- a/engines/scumm/he/intern_he.h
+++ b/engines/scumm/he/intern_he.h
@@ -288,7 +288,8 @@ public:
virtual byte *getStringAddress(ResId idx);
virtual int setupStringArray(int size);
- void getStringFromArray(int arrayNumber, char *buffer, int maxLength);
+ virtual int setupStringArrayFromString(char *cStr);
+ virtual void getStringFromArray(int arrayNumber, char *buffer, int maxLength);
protected:
virtual void setupOpcodes();
diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp
index 1926751..4385475 100644
--- a/engines/scumm/he/script_v72he.cpp
+++ b/engines/scumm/he/script_v72he.cpp
@@ -230,6 +230,23 @@ int ScummEngine_v72he::setupStringArray(int size) {
return readVar(0);
}
+int ScummEngine_v72he::setupStringArrayFromString(char *cStr) {
+ // this is PUI_ScummStringArrayFromCString() found in PUSERMAC.cpp
+ // I can see how its done up there in setupStringArray()
+ // yet I'd note that 'SCUMMVAR_user_reserved' var was used instead of 0
+ // and strlen(), not strlen() + 1 was used
+ // plus, this function actually copies the string, not just 'sets up' the array
+
+ writeVar(0, 0);
+
+ int len = strlen(cStr);
+ byte *ptr = defineArray(0, kStringArray, 0, 0, 0, len);
+ if (ptr != nullptr)
+ strcpy((char*)ptr, cStr);
+
+ return readVar(0);
+}
+
void ScummEngine_v72he::readArrayFromIndexFile() {
int num;
int a, b, c;
Commit: 3c64e4958dd6920644a568e0ea38e4e7edd43b71
https://github.com/scummvm/scummvm/commit/3c64e4958dd6920644a568e0ea38e4e7edd43b71
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add some Moonbase logic
Logic for getting host name and IP from name. Net gets more stubs.
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 7e77368..04e694e 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -503,13 +503,28 @@ int LogicHEmoonbase::op_net_set_provider_by_name(int op, int numArgs, int32 *arg
void LogicHEmoonbase::op_net_set_fake_latency(int op, int numArgs, int32 *args) {
warning("STUB: op_net_set_fake_latency()");
}
+
int LogicHEmoonbase::op_net_get_host_name(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_get_host_name()");
- return 1;
+ char name[MAX_HOSTNAME_SIZE];
+
+ if (_vm1->_moonbase->_net->getHostName(name, MAX_HOSTNAME_SIZE)) { // PN_GetHostName
+ return _vm1->setupStringArrayFromString(name);
+ }
+
+ return 0;
}
+
int LogicHEmoonbase::op_net_get_ip_from_name(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_get_ip_from_name()");
- return 1;
+ char szName[MAX_HOSTNAME_SIZE];
+ _vm1->getStringFromArray(args[0], szName, sizeof(szName));
+
+ char ip[MAX_IP_SIZE];
+
+ if (_vm1->_moonbase->_net->getIPfromName(ip, MAX_IP_SIZE, szName)) { // PN_GetIPfromName
+ return _vm1->setupStringArrayFromString(ip);
+ }
+
+ return 0;
}
int LogicHEmoonbase::op_net_host_tcpip_game(int op, int numArgs, int32 *args) {
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index eb54250..2d92313 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -60,4 +60,14 @@ int Net::whoAmI() {
return 0;
}
+bool Net::getHostName(char *hostname, int length) {
+ warning("STUB: Net::getHostName(\"%s\", %d)", hostname, length); // PN_GetHostName
+ return false;
+}
+
+bool Net::getIPfromName(char *ip, int ipLength, char *nameBuffer) {
+ warning("STUB: Net::getIPfromName(\"%s\", %d, \"%s\")", ip, ipLength, nameBuffer); // PN_GetIPfromName
+ return false;
+}
+
} // End of namespace Scumm
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index f8c289c..8b55594 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -39,10 +39,13 @@ public:
int removeUser();
int whoSentThis();
int whoAmI();
+
private:
public:
//getters
+ bool getHostName(char *hostname, int length);
+ bool getIPfromName(char *ip, int ipLength, char *nameBuffer);
private:
//mostly getters
Commit: 9de6746814beefd32dd7fd6e4336a28cfccaaf3b
https://github.com/scummvm/scummvm/commit/9de6746814beefd32dd7fd6e4336a28cfccaaf3b
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Replace strcpy with strlcpy in array setup
setupStringArrayFromString() now uses Common::strlcpy().
Changed paths:
engines/scumm/he/script_v72he.cpp
diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp
index 4385475..c764de7 100644
--- a/engines/scumm/he/script_v72he.cpp
+++ b/engines/scumm/he/script_v72he.cpp
@@ -239,10 +239,10 @@ int ScummEngine_v72he::setupStringArrayFromString(char *cStr) {
writeVar(0, 0);
- int len = strlen(cStr);
+ int len = strlen(cStr) + 1;
byte *ptr = defineArray(0, kStringArray, 0, 0, 0, len);
if (ptr != nullptr)
- strcpy((char*)ptr, cStr);
+ Common::strlcpy((char*)ptr, cStr, len);
return readVar(0);
}
Commit: 0ffca9c03a8ed84ee319fce367b8227f8488ee7f
https://github.com/scummvm/scummvm/commit/0ffca9c03a8ed84ee319fce367b8227f8488ee7f
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Fix some variable naming
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 04e694e..9c2145d 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -515,12 +515,12 @@ int LogicHEmoonbase::op_net_get_host_name(int op, int numArgs, int32 *args) {
}
int LogicHEmoonbase::op_net_get_ip_from_name(int op, int numArgs, int32 *args) {
- char szName[MAX_HOSTNAME_SIZE];
- _vm1->getStringFromArray(args[0], szName, sizeof(szName));
+ char name[MAX_HOSTNAME_SIZE];
+ _vm1->getStringFromArray(args[0], name, sizeof(name));
char ip[MAX_IP_SIZE];
- if (_vm1->_moonbase->_net->getIPfromName(ip, MAX_IP_SIZE, szName)) { // PN_GetIPfromName
+ if (_vm1->_moonbase->_net->getIPfromName(ip, MAX_IP_SIZE, name)) { // PN_GetIPfromName
return _vm1->setupStringArrayFromString(ip);
}
@@ -538,13 +538,13 @@ int LogicHEmoonbase::op_net_host_tcpip_game(int op, int numArgs, int32 *args) {
}
int LogicHEmoonbase::op_net_join_tcpip_game(int op, int numArgs, int32 *args) {
- char szIP[MAX_IP_SIZE];
+ char ip[MAX_IP_SIZE];
char userName[MAX_PLAYER_NAME];
- _vm1->getStringFromArray(args[0], szIP, sizeof(szIP));
+ _vm1->getStringFromArray(args[0], ip, sizeof(ip));
_vm1->getStringFromArray(args[1], userName, sizeof(userName));
- return _vm1->_moonbase->_net->joinGame(szIP, userName);
+ return _vm1->_moonbase->_net->joinGame(ip, userName);
}
#endif
Commit: da35b451d6b7f5f2289b6991b642ec9852b726f6
https://github.com/scummvm/scummvm/commit/da35b451d6b7f5f2289b6991b642ec9852b726f6
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add more LogicHEmoonbase kludges
Less stubs there, more stubs in Net.
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 9c2145d..1e18b60 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -455,24 +455,27 @@ int LogicHEmoonbase::op_net_create_session(int op, int numArgs, int32 *args) {
warning("STUB: op_net_create_session()");
return 1;
}
+
int LogicHEmoonbase::op_net_join_session(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_join_session()");
- return 1;
+ return _vm1->_moonbase->_net->joinSession(args[0] - 1);
}
+
int LogicHEmoonbase::op_net_end_session(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_end_session()");
- return 1;
+ return _vm1->_moonbase->_net->endSession();
}
+
int LogicHEmoonbase::op_net_disable_session_player_join(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_disable_session_player_join()");
+ _vm1->_moonbase->_net->disableSessionJoining();
return 1;
}
+
int LogicHEmoonbase::op_net_enable_session_player_join(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_enable_session_player_join()");
+ _vm1->_moonbase->_net->enableSessionJoining();
return 1;
}
+
int LogicHEmoonbase::op_net_set_ai_player_count(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_set_ai_player_count()");
+ _vm1->_moonbase->_net->setBotsCount(args[0]);
return 1;
}
@@ -507,7 +510,7 @@ void LogicHEmoonbase::op_net_set_fake_latency(int op, int numArgs, int32 *args)
int LogicHEmoonbase::op_net_get_host_name(int op, int numArgs, int32 *args) {
char name[MAX_HOSTNAME_SIZE];
- if (_vm1->_moonbase->_net->getHostName(name, MAX_HOSTNAME_SIZE)) { // PN_GetHostName
+ if (_vm1->_moonbase->_net->getHostName(name, MAX_HOSTNAME_SIZE)) {
return _vm1->setupStringArrayFromString(name);
}
@@ -520,7 +523,7 @@ int LogicHEmoonbase::op_net_get_ip_from_name(int op, int numArgs, int32 *args) {
char ip[MAX_IP_SIZE];
- if (_vm1->_moonbase->_net->getIPfromName(ip, MAX_IP_SIZE, name)) { // PN_GetIPfromName
+ if (_vm1->_moonbase->_net->getIPfromName(ip, MAX_IP_SIZE, name)) {
return _vm1->setupStringArrayFromString(ip);
}
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index 2d92313..3d25126 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -60,6 +60,28 @@ int Net::whoAmI() {
return 0;
}
+int Net::joinSession(int sessionIndex) {
+ warning("STUB: Net::joinSession(%d)", sessionIndex); // PN_JoinSession
+ return 0;
+}
+
+int Net::endSession() {
+ warning("STUB: Net::endSession()"); // PN_EndSession
+ return 0;
+}
+
+void Net::disableSessionJoining() {
+ warning("STUB: Net::disableSessionJoining()"); // PN_DisableSessionPlayerJoin
+}
+
+void Net::enableSessionJoining() {
+ warning("STUB: Net::enableSessionJoining()"); // PN_EnableSessionPlayerJoin
+}
+
+void Net::setBotsCount(int botsCount) {
+ warning("STUB: Net::setBotsCount(%d)", botsCount); // PN_SetAIPlayerCountKludge
+}
+
bool Net::getHostName(char *hostname, int length) {
warning("STUB: Net::getHostName(\"%s\", %d)", hostname, length); // PN_GetHostName
return false;
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 8b55594..fb7dffe 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -39,7 +39,12 @@ public:
int removeUser();
int whoSentThis();
int whoAmI();
-
+ int joinSession(int sessionIndex);
+ int endSession();
+ void disableSessionJoining();
+ void enableSessionJoining();
+ void setBotsCount(int botsCount);
+
private:
public:
Commit: 0f82e2acdc594b96ca7016215f24b879336de6fd
https://github.com/scummvm/scummvm/commit/0f82e2acdc594b96ca7016215f24b879336de6fd
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add two more kludges
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 1e18b60..bea5672 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -500,11 +500,10 @@ int LogicHEmoonbase::op_net_who_am_i(int op, int numArgs, int32 *args) {
int LogicHEmoonbase::op_net_set_provider_by_name(int op, int numArgs, int32 *args) {
// Parameter 1 is the provider name and
// Parameter 2 is the (optional) tcp/ip address
- warning("STUB: op_net_set_provider_by_name()");
- return 1;
+ return _vm1->_moonbase->_net->setProviderByName(args[0], args[1]);
}
void LogicHEmoonbase::op_net_set_fake_latency(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_set_fake_latency()");
+ _vm1->_moonbase->_net->setFakeLatency(args[0]);
}
int LogicHEmoonbase::op_net_get_host_name(int op, int numArgs, int32 *args) {
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index 3d25126..fb835eb 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -26,7 +26,7 @@
namespace Scumm {
-Net::Net(ScummEngine_v100he *vm) : _vm(vm) {
+Net::Net(ScummEngine_v100he *vm) : _latencyTime(1), _fakeLatency(false), _vm(vm) {
//some defaults for fields
}
@@ -82,6 +82,17 @@ void Net::setBotsCount(int botsCount) {
warning("STUB: Net::setBotsCount(%d)", botsCount); // PN_SetAIPlayerCountKludge
}
+int32 Net::setProviderByName(int32 parameter1, int32 parameter2) {
+ warning("STUB: Net::setProviderByName(%d, %d)", parameter1, parameter2); // PN_SetProviderByName
+ return 0;
+}
+
+void Net::setFakeLatency(int time) {
+ _latencyTime = time;
+ debug("NETWORK: Setting Fake Latency to %d ms \n", _latencyTime); // TODO: is it OK to use debug instead of SPUTM_xprintf?
+ _fakeLatency = true;
+}
+
bool Net::getHostName(char *hostname, int length) {
warning("STUB: Net::getHostName(\"%s\", %d)", hostname, length); // PN_GetHostName
return false;
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index fb7dffe..41dc45a 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -44,6 +44,8 @@ public:
void disableSessionJoining();
void enableSessionJoining();
void setBotsCount(int botsCount);
+ int32 setProviderByName(int32 parameter1, int32 parameter2);
+ void setFakeLatency(int time);
private:
@@ -57,6 +59,8 @@ private:
public:
//fields
+ int _latencyTime; // ms
+ bool _fakeLatency;
ScummEngine_v100he *_vm;
};
Commit: c997612bfc0e12b04124ef11906d2104537dfbf7
https://github.com/scummvm/scummvm/commit/c997612bfc0e12b04124ef11906d2104537dfbf7
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add a few more logic kludges
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index bea5672..c8f01d9 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -439,21 +439,23 @@ int LogicHEmoonbase::op_net_get_session_player_count(int op, int numArgs, int32
warning("STUB: op_net_get_session_player_count()");
return 1;
}
-int LogicHEmoonbase::op_net_destroy_player(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_destroy_player()");
- return 1;
+
+int LogicHEmoonbase::op_net_destroy_player(int op, int numArgs, int32 *args) {
+ return _vm1->_moonbase->_net->destroyPlayer(args[0]);
}
+
int LogicHEmoonbase::op_net_get_player_long_name(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_get_player_long_name()");
- return 1;
+ return _vm1->setupStringArrayFromString("long name"); // TODO: gdefMultiPlay.playername1
}
+
int LogicHEmoonbase::op_net_get_player_short_name(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_get_player_short_name()");
- return 1;
+ return _vm1->setupStringArrayFromString("short"); // TODO: gdefMultiPlay.playername2
}
+
int LogicHEmoonbase::op_net_create_session(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_create_session()");
- return 1;
+ char name[MAX_SESSION_NAME];
+ _vm1->getStringFromArray(args[0], name, sizeof(name));
+ return _vm1->_moonbase->_net->createSession(name);
}
int LogicHEmoonbase::op_net_join_session(int op, int numArgs, int32 *args) {
@@ -502,6 +504,7 @@ int LogicHEmoonbase::op_net_set_provider_by_name(int op, int numArgs, int32 *arg
// Parameter 2 is the (optional) tcp/ip address
return _vm1->_moonbase->_net->setProviderByName(args[0], args[1]);
}
+
void LogicHEmoonbase::op_net_set_fake_latency(int op, int numArgs, int32 *args) {
_vm1->_moonbase->_net->setFakeLatency(args[0]);
}
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index fb835eb..3835a78 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -60,6 +60,11 @@ int Net::whoAmI() {
return 0;
}
+int Net::createSession(char *name) {
+ warning("STUB: Net::createSession(\"%s\")", name); // PN_CreateSession
+ return 0;
+}
+
int Net::joinSession(int sessionIndex) {
warning("STUB: Net::joinSession(%d)", sessionIndex); // PN_JoinSession
return 0;
@@ -93,6 +98,12 @@ void Net::setFakeLatency(int time) {
_fakeLatency = true;
}
+bool Net::destroyPlayer(int32 playerDPID) {
+ // bool PNETWIN_destroyplayer(DPID idPlayer)
+ warning("STUB: Net::destroyPlayer(%d)", playerDPID);
+ return false;
+}
+
bool Net::getHostName(char *hostname, int length) {
warning("STUB: Net::getHostName(\"%s\", %d)", hostname, length); // PN_GetHostName
return false;
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 41dc45a..22e9982 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -39,6 +39,7 @@ public:
int removeUser();
int whoSentThis();
int whoAmI();
+ int createSession(char *name);
int joinSession(int sessionIndex);
int endSession();
void disableSessionJoining();
@@ -46,6 +47,7 @@ public:
void setBotsCount(int botsCount);
int32 setProviderByName(int32 parameter1, int32 parameter2);
void setFakeLatency(int time);
+ bool destroyPlayer(int32 playerDPID);
private:
Commit: e70522e506cdeb4a0bb1d9deafe2f8062a9bd47e
https://github.com/scummvm/scummvm/commit/e70522e506cdeb4a0bb1d9deafe2f8062a9bd47e
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add session-related kludges
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index c8f01d9..d425b5a 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -431,13 +431,15 @@ int LogicHEmoonbase::op_net_query_sessions(int op, int numArgs, int32 *args) {
warning("STUB: op_net_query_sessions()");
return 1;
}
+
int LogicHEmoonbase::op_net_get_session_name(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_get_session_name()");
- return 1;
+ char name[MAX_PROVIDER_NAME];
+ _vm1->_moonbase->_net->getSessionName(args[0] - 1, name, sizeof(name));
+ return _vm1->setupStringArrayFromString(name);
}
+
int LogicHEmoonbase::op_net_get_session_player_count(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_get_session_player_count()");
- return 1;
+ return _vm1->_moonbase->_net->getSessionPlayerCount(args[0] - 1);
}
int LogicHEmoonbase::op_net_destroy_player(int op, int numArgs, int32 *args) {
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index 3835a78..1f2e094 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -114,4 +114,15 @@ bool Net::getIPfromName(char *ip, int ipLength, char *nameBuffer) {
return false;
}
+void Net::getSessionName(int sessionNumber, char *buffer, int length) {
+ warning("STUB: Net::getSessionPlayerCount(%d, \"%s\", %d)", sessionNumber, buffer, length); // PN_GetSessionName
+}
+
+int Net::getSessionPlayerCount(int sessionNumber) {
+ warning("STUB: Net::getSessionPlayerCount(%d)", sessionNumber); // case GET_SESSION_PLAYER_COUNT_KLUDGE:
+ //assert(sessionNumber >= 0 && sessionNumber < NUMELEMENTS(gdefMultiPlay.gamedescptr));
+ //return gdefMultiPlay.gamedescptr[sessionNumber].currentplayers;
+ return 0;
+}
+
} // End of namespace Scumm
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 22e9982..949332a 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -55,7 +55,8 @@ public:
//getters
bool getHostName(char *hostname, int length);
bool getIPfromName(char *ip, int ipLength, char *nameBuffer);
-
+ void getSessionName(int sessionNumber, char *buffer, int length);
+ int getSessionPlayerCount(int sessionNumber);
private:
//mostly getters
Commit: e33c401f7877dd5b0dede1dd147bbdb6e6a2576b
https://github.com/scummvm/scummvm/commit/e33c401f7877dd5b0dede1dd147bbdb6e6a2576b
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add session quering-related kludges
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index d425b5a..d7158be 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -415,21 +415,22 @@ int LogicHEmoonbase::op_net_close_provider(int op, int numArgs, int32 *args) {
warning("STUB: op_net_close_provider()");
return 1;
}
+
int LogicHEmoonbase::op_net_start_query_sessions(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_start_query_sessions()");
- return 1;
+ return _vm1->_moonbase->_net->startQuerySessions();
}
+
int LogicHEmoonbase::op_net_update_query_sessions(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_update_query_sessions()");
- return 1;
+ return _vm1->_moonbase->_net->updateQuerySessions();
}
+
int LogicHEmoonbase::op_net_stop_query_sessions(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_stop_query_sessions()");
+ _vm1->_moonbase->_net->stopQuerySessions();
return 1;
}
+
int LogicHEmoonbase::op_net_query_sessions(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_query_sessions()");
- return 1;
+ return _vm1->_moonbase->_net->querySessions();
}
int LogicHEmoonbase::op_net_get_session_name(int op, int numArgs, int32 *args) {
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index 1f2e094..71a4b8a 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -104,6 +104,25 @@ bool Net::destroyPlayer(int32 playerDPID) {
return false;
}
+int32 Net::startQuerySessions() {
+ warning("STUB: Net::startQuerySessions()"); // StartQuerySessions
+ return 0;
+}
+
+int32 Net::updateQuerySessions() {
+ warning("STUB: Net::updateQuerySessions()"); // UpdateQuerySessions
+ return 0;
+}
+
+void Net::stopQuerySessions() {
+ warning("STUB: Net::stopQuerySessions()"); // StopQuerySessions
+}
+
+int Net::querySessions() {
+ warning("STUB: Net::querySessions()"); // PN_QuerySessions
+ return 0;
+}
+
bool Net::getHostName(char *hostname, int length) {
warning("STUB: Net::getHostName(\"%s\", %d)", hostname, length); // PN_GetHostName
return false;
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 949332a..12f255a 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -48,6 +48,10 @@ public:
int32 setProviderByName(int32 parameter1, int32 parameter2);
void setFakeLatency(int time);
bool destroyPlayer(int32 playerDPID);
+ int32 startQuerySessions();
+ int32 updateQuerySessions();
+ void stopQuerySessions();
+ int querySessions();
private:
@@ -57,6 +61,7 @@ public:
bool getIPfromName(char *ip, int ipLength, char *nameBuffer);
void getSessionName(int sessionNumber, char *buffer, int length);
int getSessionPlayerCount(int sessionNumber);
+
private:
//mostly getters
Commit: 5d9a3e17b2ba4e590fc86dd05459ab3a1be94c97
https://github.com/scummvm/scummvm/commit/5d9a3e17b2ba4e590fc86dd05459ab3a1be94c97
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add provider-related kludges
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index d7158be..da37417 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -399,21 +399,23 @@ int LogicHEmoonbase::op_net_do_init_user(int op, int numArgs, int32 *args) {
warning("STUB: op_net_do_init_user()");
return 1;
}
+
int LogicHEmoonbase::op_net_query_providers(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_query_providers()");
- return 1;
+ return _vm1->_moonbase->_net->queryProviders();
}
+
int LogicHEmoonbase::op_net_get_provider_name(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_get_provider_name()");
- return 1;
+ char name[MAX_PROVIDER_NAME];
+ _vm1->_moonbase->_net->getProviderName(args[0] - 1, name, sizeof(name));
+ return _vm1->setupStringArrayFromString(name);
}
+
int LogicHEmoonbase::op_net_set_provider(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_set_provider()");
- return 1;
+ return _vm1->_moonbase->_net->setProvider(args[0] - 1);
}
+
int LogicHEmoonbase::op_net_close_provider(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_close_provider()");
- return 1;
+ return _vm1->_moonbase->_net->closeProvider();
}
int LogicHEmoonbase::op_net_start_query_sessions(int op, int numArgs, int32 *args) {
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index 71a4b8a..8938e05 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -123,6 +123,21 @@ int Net::querySessions() {
return 0;
}
+int Net::queryProviders() {
+ warning("STUB: Net::queryProviders()"); // PN_QueryProviders
+ return 0;
+}
+
+int Net::setProvider(int providerIndex) {
+ warning("STUB: Net::setProvider(%d)", providerIndex); // PN_SetProvider
+ return 0;
+}
+
+int Net::closeProvider() {
+ warning("STUB: Net::closeProvider()"); // PN_CloseProvider
+ return 0;
+}
+
bool Net::getHostName(char *hostname, int length) {
warning("STUB: Net::getHostName(\"%s\", %d)", hostname, length); // PN_GetHostName
return false;
@@ -134,7 +149,7 @@ bool Net::getIPfromName(char *ip, int ipLength, char *nameBuffer) {
}
void Net::getSessionName(int sessionNumber, char *buffer, int length) {
- warning("STUB: Net::getSessionPlayerCount(%d, \"%s\", %d)", sessionNumber, buffer, length); // PN_GetSessionName
+ warning("STUB: Net::getSessionName(%d, \"%s\", %d)", sessionNumber, buffer, length); // PN_GetSessionName
}
int Net::getSessionPlayerCount(int sessionNumber) {
@@ -144,4 +159,8 @@ int Net::getSessionPlayerCount(int sessionNumber) {
return 0;
}
+void Net::getProviderName(int providerIndex, char *buffer, int length) {
+ warning("STUB: Net::getProviderName(%d, \"%s\", %d)", providerIndex, buffer, length); // PN_GetProviderName
+}
+
} // End of namespace Scumm
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 12f255a..0490c1c 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -52,6 +52,9 @@ public:
int32 updateQuerySessions();
void stopQuerySessions();
int querySessions();
+ int queryProviders();
+ int setProvider(int providerIndex);
+ int closeProvider();
private:
@@ -61,6 +64,7 @@ public:
bool getIPfromName(char *ip, int ipLength, char *nameBuffer);
void getSessionName(int sessionNumber, char *buffer, int length);
int getSessionPlayerCount(int sessionNumber);
+ void getProviderName(int providerIndex, char *buffer, int length);
private:
//mostly getters
Commit: 45947f6ccc02b336497b896490e1ffe4d74c4965
https://github.com/scummvm/scummvm/commit/45947f6ccc02b336497b896490e1ffe4d74c4965
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add init-related kludges
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index da37417..63d2532 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -383,21 +383,21 @@ int LogicHEmoonbase::op_net_remote_start_function(int op, int numArgs, int32 *ar
warning("STUB: op_net_remote_start_function()");
return 1;
}
+
int LogicHEmoonbase::op_net_do_init_all(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_do_init_all()");
- return 1;
+ return _vm1->_moonbase->_net->initAll();
}
+
int LogicHEmoonbase::op_net_do_init_provider(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_do_init_provider()");
- return 1;
+ return _vm1->_moonbase->_net->initProvider();
}
+
int LogicHEmoonbase::op_net_do_init_session(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_do_init_session()");
- return 1;
+ return _vm1->_moonbase->_net->initSession();
}
+
int LogicHEmoonbase::op_net_do_init_user(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_do_init_user()");
- return 1;
+ return _vm1->_moonbase->_net->initUser();
}
int LogicHEmoonbase::op_net_query_providers(int op, int numArgs, int32 *args) {
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index 8938e05..f2ef1c8 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -138,6 +138,26 @@ int Net::closeProvider() {
return 0;
}
+bool Net::initAll() {
+ warning("STUB: Net::initAll()"); // PN_DoInitAll
+ return false;
+}
+
+bool Net::initProvider() {
+ warning("STUB: Net::initProvider()"); // PN_DoInitProvider
+ return false;
+}
+
+bool Net::initSession() {
+ warning("STUB: Net::initSession()"); // PN_DoInitSession
+ return false;
+}
+
+bool Net::initUser() {
+ warning("STUB: Net::initUser()"); // PN_DoInitUser
+ return false;
+}
+
bool Net::getHostName(char *hostname, int length) {
warning("STUB: Net::getHostName(\"%s\", %d)", hostname, length); // PN_GetHostName
return false;
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 0490c1c..dbfe08d 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -55,6 +55,10 @@ public:
int queryProviders();
int setProvider(int providerIndex);
int closeProvider();
+ bool initAll();
+ bool initProvider();
+ bool initSession();
+ bool initUser();
private:
@@ -65,7 +69,7 @@ public:
void getSessionName(int sessionNumber, char *buffer, int length);
int getSessionPlayerCount(int sessionNumber);
void getProviderName(int providerIndex, char *buffer, int length);
-
+
private:
//mostly getters
Commit: dd68bf0f183715127fbd6d2d4495d392e298a647
https://github.com/scummvm/scummvm/commit/dd68bf0f183715127fbd6d2d4495d392e298a647
Author: Alexander Tkachev (alexander at tkachov.ru)
Date: 2016-08-30T23:26:29+02:00
Commit Message:
SCUMM HE: Add remote scripts-related kludges
Those are the last ones. Now Net stubs must be handled.
Changed paths:
engines/scumm/he/logic/moonbase_logic.cpp
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp
index 63d2532..c504ad4 100644
--- a/engines/scumm/he/logic/moonbase_logic.cpp
+++ b/engines/scumm/he/logic/moonbase_logic.cpp
@@ -374,14 +374,15 @@ void LogicHEmoonbase::op_ai_clean_up(int op, int numArgs, int32 *args) {
#ifdef USE_SDL_NET
void LogicHEmoonbase::op_net_remote_start_script(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_remote_start_script()");
+ _vm1->_moonbase->_net->remoteStartScript(args[0], args[1], args[2], numArgs - 3, &args[3]);
}
+
void LogicHEmoonbase::op_net_remote_send_array(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_remote_send_array()");
+ _vm1->_moonbase->_net->remoteSendArray(args[0], args[1], args[2], args[3]);
}
+
int LogicHEmoonbase::op_net_remote_start_function(int op, int numArgs, int32 *args) {
- warning("STUB: op_net_remote_start_function()");
- return 1;
+ return _vm1->_moonbase->_net->remoteStartScriptFunction(args[0], args[1], args[2], args[3], numArgs - 4, &args[4]);
}
int LogicHEmoonbase::op_net_do_init_all(int op, int numArgs, int32 *args) {
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index f2ef1c8..cdc2eef 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -158,6 +158,19 @@ bool Net::initUser() {
return false;
}
+void Net::remoteStartScript(int typeOfSend, int sendTypeParam, int priority, int argsCount, int32 *args) {
+ warning("STUB: Net::remoteStartScript(%d, %d, %d, %d, ...)", typeOfSend, sendTypeParam, priority, argsCount); // PN_RemoteStartScriptCommand
+}
+
+void Net::remoteSendArray(int typeOfSend, int sendTypeParam, int priority, int arrayIndex) {
+ warning("STUB: Net::remoteSendArray(%d, %d, %d, %d)", typeOfSend, sendTypeParam, priority, arrayIndex); // PN_RemoteSendArrayCommand
+}
+
+int Net::remoteStartScriptFunction(int typeOfSend, int sendTypeParam, int priority, int defaultReturnValue, int argsCount, int32 *args) {
+ warning("STUB: Net::remoteStartScriptFunction(%d, %d, %d, %d, %d, ...)", typeOfSend, sendTypeParam, priority, defaultReturnValue, argsCount); // PN_RemoteStartScriptFunction
+ return 0;
+}
+
bool Net::getHostName(char *hostname, int length) {
warning("STUB: Net::getHostName(\"%s\", %d)", hostname, length); // PN_GetHostName
return false;
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index dbfe08d..8350904 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -59,6 +59,9 @@ public:
bool initProvider();
bool initSession();
bool initUser();
+ void remoteStartScript(int typeOfSend, int sendTypeParam, int priority, int argsCount, int32 *args);
+ void remoteSendArray(int typeOfSend, int sendTypeParam, int priority, int arrayIndex);
+ int remoteStartScriptFunction(int typeOfSend, int sendTypeParam, int priority, int defaultReturnValue, int argsCount, int32 *args);
private:
More information about the Scummvm-git-logs
mailing list