Hi,

This diff updates goldberg_emulator to a recent checkout that
implements Steam SDK 1.56/1.57. At lease most of it - it seems that
isteamdualsense.h is referenced, but not included at this point
(relevant parts are stubbed).

Other ports depend on the API provided by goldberg, specifically
libcsteamworks, hlsteam, and godot as the latter builds with the
GodotSteam module.

I tested the result with the following games that use Steam SDK API:

- Brotato (godot)
- Salt and Sanctuary (libcsteamworks)
- Glitchangels (libcsteamworks)
- Northgard (hlsteam)

Would appreciate op@'s look if everyting with godot and the update
of the GodotSteam version look ok... some change to the case in the
directory was needed for this to pick up the right function names due
to the build system auto-generating some stuff there.

comments? oks? (as these are niche ports, I intend to commit the
updates if the godot part is ok with op@ if I don't hear back about the
rest...)

Index: goldberg_emulator/Makefile
===================================================================
RCS file: /cvs/ports/games/goldberg_emulator/Makefile,v
retrieving revision 1.5
diff -u -p -r1.5 Makefile
--- goldberg_emulator/Makefile  10 Oct 2022 18:36:02 -0000      1.5
+++ goldberg_emulator/Makefile  28 Jul 2023 19:17:16 -0000
@@ -1,14 +1,14 @@
 COMMENT =      emulator for Steam online features
 
-# commit from 2022-09-06
-GL_V =         0.2.5pl2
+# commit from 2023-05-08
+GL_V =         0.2.5pl3
 GL_ACCOUNT =   Mr_Goldberg
 GL_PROJECT =   goldberg_emulator
-GL_COMMIT =    802d8bcc8fc33fed263b98590373a3bacaa19a9c
+GL_COMMIT =    475342f0d8b2bd7eb0d93bd7cfdd61e3ae7cda24
 DISTNAME =     ${GL_PROJECT}-${GL_V}{${GL_COMMIT}}
 PKGNAME =      ${GL_PROJECT}-${GL_V}
 
-SHARED_LIBS += steam_api       2.0     # 2022-08-05 (sdk 1.55)
+SHARED_LIBS += steam_api       3.0     # 2023-05-08 (sdk 1.57)
 CATEGORIES =   games
 HOMEPAGE =     https://gitlab.com/${GL_ACCOUNT}/${GL_PROJECT}
 MAINTAINER =   Thomas Frohwein <t...@openbsd.org>
Index: goldberg_emulator/distinfo
===================================================================
RCS file: /cvs/ports/games/goldberg_emulator/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- goldberg_emulator/distinfo  10 Oct 2022 18:36:02 -0000      1.3
+++ goldberg_emulator/distinfo  28 Jul 2023 19:17:16 -0000
@@ -1,2 +1,2 @@
-SHA256 (goldberg_emulator-0.2.5pl2.tar.gz) = 
uGsKf+MgLt+zfKNGhRVvOHY4yhWxuNXeQAYD4eYdnWE=
-SIZE (goldberg_emulator-0.2.5pl2.tar.gz) = 2255882
+SHA256 (goldberg_emulator-0.2.5pl3.tar.gz) = 
Nc8KGamuu7Xq4791kI0qvQGh8Rl+th74kqj723U4wfk=
+SIZE (goldberg_emulator-0.2.5pl3.tar.gz) = 2260829
Index: goldberg_emulator/patches/patch-sdk_includes_steam_gameserver_h
===================================================================
RCS file: 
/cvs/ports/games/goldberg_emulator/patches/patch-sdk_includes_steam_gameserver_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-sdk_includes_steam_gameserver_h
--- goldberg_emulator/patches/patch-sdk_includes_steam_gameserver_h     10 Oct 
2022 18:36:02 -0000      1.1
+++ goldberg_emulator/patches/patch-sdk_includes_steam_gameserver_h     28 Jul 
2023 19:17:16 -0000
@@ -3,7 +3,7 @@ remove duplicate function definition wit
 Index: sdk_includes/steam_gameserver.h
 --- sdk_includes/steam_gameserver.h.orig
 +++ sdk_includes/steam_gameserver.h
-@@ -62,9 +62,6 @@ const uint16 STEAMGAMESERVER_QUERY_PORT_SHARED = 0xfff
+@@ -63,9 +63,6 @@ const uint16 STEAMGAMESERVER_QUERY_PORT_SHARED = 0xfff
  //            ISteamGameServer::GetNextOutgoingPacket.)
  // - The version string should be in the form x.x.x.x, and is used by the 
master server to detect when the
  //            server is out of date.  (Only servers with the latest version 
will be listed.)
Index: goldberg_emulator/patches/patch-sdk_includes_steamclientpublic_h
===================================================================
RCS file: 
/cvs/ports/games/goldberg_emulator/patches/patch-sdk_includes_steamclientpublic_h,v
retrieving revision 1.4
diff -u -p -r1.4 patch-sdk_includes_steamclientpublic_h
--- goldberg_emulator/patches/patch-sdk_includes_steamclientpublic_h    10 Oct 
2022 18:36:02 -0000      1.4
+++ goldberg_emulator/patches/patch-sdk_includes_steamclientpublic_h    28 Jul 
2023 19:17:16 -0000
@@ -3,12 +3,12 @@ fix error on 32bit arches with size of V
 Index: sdk_includes/steamclientpublic.h
 --- sdk_includes/steamclientpublic.h.orig
 +++ sdk_includes/steamclientpublic.h
-@@ -1521,7 +1521,7 @@ enum ESteamIPv6ConnectivityState
+@@ -1531,7 +1531,7 @@ enum ESteamIPv6ConnectivityState
  // Define compile time assert macros to let us validate the structure sizes.
  #define VALVE_COMPILE_TIME_ASSERT( pred ) typedef char 
compile_time_assert_type[(pred) ? 1 : -1];
  
--#if defined(__linux__) || defined(__APPLE__) 
-+#if defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__)
+-#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || 
defined(__OpenBSD__)
  // The 32-bit version of gcc has the alignment requirement for uint64 and 
double set to
  // 4 meaning that even with #pragma pack(8) these types will only be 
four-byte aligned.
  // The 64-bit version of gcc has the alignment requirement for these types 
set to
Index: goldberg_emulator/pkg/PLIST
===================================================================
RCS file: /cvs/ports/games/goldberg_emulator/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- goldberg_emulator/pkg/PLIST 10 Oct 2022 18:36:02 -0000      1.4
+++ goldberg_emulator/pkg/PLIST 28 Jul 2023 19:17:16 -0000
@@ -57,6 +57,7 @@ include/goldberg_emulator/steam/isteamga
 include/goldberg_emulator/steam/isteamgameserver011.h
 include/goldberg_emulator/steam/isteamgameserver012.h
 include/goldberg_emulator/steam/isteamgameserver013.h
+include/goldberg_emulator/steam/isteamgameserver014.h
 include/goldberg_emulator/steam/isteamgameserverstats.h
 include/goldberg_emulator/steam/isteamhtmlsurface.h
 include/goldberg_emulator/steam/isteamhtmlsurface001.h
@@ -139,6 +140,7 @@ include/goldberg_emulator/steam/isteamug
 include/goldberg_emulator/steam/isteamugc013.h
 include/goldberg_emulator/steam/isteamugc014.h
 include/goldberg_emulator/steam/isteamugc015.h
+include/goldberg_emulator/steam/isteamugc016.h
 include/goldberg_emulator/steam/isteamunifiedmessages.h
 include/goldberg_emulator/steam/isteamuser.h
 include/goldberg_emulator/steam/isteamuser009.h
@@ -153,6 +155,8 @@ include/goldberg_emulator/steam/isteamus
 include/goldberg_emulator/steam/isteamuser018.h
 include/goldberg_emulator/steam/isteamuser019.h
 include/goldberg_emulator/steam/isteamuser020.h
+include/goldberg_emulator/steam/isteamuser021.h
+include/goldberg_emulator/steam/isteamuser022.h
 include/goldberg_emulator/steam/isteamuserstats.h
 include/goldberg_emulator/steam/isteamuserstats001.h
 include/goldberg_emulator/steam/isteamuserstats002.h
Index: godot/Makefile
===================================================================
RCS file: /cvs/ports/games/godot/Makefile,v
retrieving revision 1.44
diff -u -p -r1.44 Makefile
--- godot/Makefile      14 Jul 2023 20:36:14 -0000      1.44
+++ godot/Makefile      28 Jul 2023 19:17:16 -0000
@@ -4,12 +4,10 @@ COMMENT-main =        2D and 3D game engine
 COMMENT-tools= 2D and 3D game engine (with tools)
 
 V =            3.5.2
-# Later versions of GodotSteam need isteamdualsense.h.
-# Can only update once that is part of games/goldberg_emulator
-GODOTSTEAM_V = g35-s155-gs3171
+GODOTSTEAM_V = g352-s157-gs3193
 DISTNAME =     godot-${V}-stable
 PKGNAME =      godot-${V}
-REVISION =     0
+REVISION =     1
 
 CATEGORIES =   games
 
@@ -36,7 +34,7 @@ WANTLIB-tools = ${WANTLIB}
 COMPILER =     base-clang ports-gcc
 
 MASTER_SITES = https://downloads.tuxfamily.org/godotengine/${V}/
-MASTER_SITES0 =        https://github.com/Gramps/GodotSteam/archive/refs/tags/
+MASTER_SITES0 =        
https://github.com/CoaguCo-Industries/GodotSteam/archive/refs/tags/
 DISTFILES =     ${DISTNAME}${EXTRACT_SUFX} \
                ${GODOTSTEAM_V}.tar.gz:0
 EXTRACT_SUFX = .tar.xz
@@ -66,7 +64,7 @@ MODSCONS_FLAGS =      CC="${CC}" \
                        builtin_pcre2=no \
                        builtin_zlib=no \
                        builtin_zstd=no \
-                       custom_modules=${WRKSRC}/GodotSteam/godotsteam \
+                       custom_modules=${WRKSRC}/godotsteam \
                        progress=no \
                        pulseaudio=no \
                        verbose=yes \
@@ -120,12 +118,12 @@ WANTLIB +=     atomic
 
 CFLAGS +=      -I${LOCALBASE}/include/goldberg_emulator
 
-# symlink to allow patching GodotSteam
+# copy over to allow patching GodotSteam
 post-extract:
        cp -R   ${FILESDIR}/sndio ${WRKDIST}/drivers
        cp      ${FILESDIR}/ujoy/joypad_openbsd.{cpp,h} \
                ${WRKDIST}/platform/x11/
-       cp -R   ${WRKDIR}/GodotSteam-${GODOTSTEAM_V} ${WRKSRC}/GodotSteam
+       cp -R   ${WRKDIR}/GodotSteam-${GODOTSTEAM_V} ${WRKSRC}/godotsteam
 
 pre-configure:
        ${SUBST_CMD} ${WRKSRC}/misc/dist/linux/*.desktop
Index: godot/distinfo
===================================================================
RCS file: /cvs/ports/games/godot/distinfo,v
retrieving revision 1.18
diff -u -p -r1.18 distinfo
--- godot/distinfo      12 Mar 2023 08:28:59 -0000      1.18
+++ godot/distinfo      28 Jul 2023 19:17:16 -0000
@@ -1,4 +1,4 @@
-SHA256 (godot-3.5.2/g35-s155-gs3171.tar.gz) = 
ZmX0vXnW1/wGxY/7OQYE0XLRf0eCTlJlFWSKI1DcP/E=
+SHA256 (godot-3.5.2/g352-s157-gs3193.tar.gz) = 
fkEgw4Z1qS5NbmdXJpB/yOVUOMRiPCo0ZQCvcKfLDHk=
 SHA256 (godot-3.5.2/godot-3.5.2-stable.tar.xz) = 
tDodaynqJby6+86/e6CEMmGqEjfic5SUU4oiANjHvmI=
-SIZE (godot-3.5.2/g35-s155-gs3171.tar.gz) = 186585
+SIZE (godot-3.5.2/g352-s157-gs3193.tar.gz) = 185341
 SIZE (godot-3.5.2/godot-3.5.2-stable.tar.xz) = 24047432
Index: godot/patches/patch-GodotSteam_godotsteam_godotsteam_cpp
===================================================================
RCS file: godot/patches/patch-GodotSteam_godotsteam_godotsteam_cpp
diff -N godot/patches/patch-GodotSteam_godotsteam_godotsteam_cpp
--- godot/patches/patch-GodotSteam_godotsteam_godotsteam_cpp    10 Oct 2022 
18:39:05 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,155 +0,0 @@
-fix function signature in call to SteamGameServer_Init()
-stub Steam::setDualSenseTriggerEffect
-stub Steam::inputActionEventCallback
-remove deprecated/incompatible namespaces ISteamHTMLSurface
-InitiateGameConnection_DEPRECATED => InitiateGameConnection
-
-Index: GodotSteam/godotsteam/godotsteam.cpp
---- GodotSteam/godotsteam/godotsteam.cpp.orig
-+++ GodotSteam/godotsteam/godotsteam.cpp
-@@ -461,7 +461,8 @@ bool Steam::serverInit(const String& ip, uint16 game_p
-               return false;
-       }
-       uint32_t ip4 = *((uint32_t *)address.get_ipv4());
--      if(!SteamGameServer_Init(ip4, game_port, query_port, mode, 
version_string.utf8().get_data())){
-+      /* use '0' in port for uint16 usSteamPort in the API */
-+      if(!SteamGameServer_Init(ip4, 0, game_port, query_port, mode, 
version_string.utf8().get_data())){
-               return false;
-       }
-       return true;
-@@ -2389,7 +2390,7 @@ void Steam::keyChar(uint32 unicode_char, int key_modif
-               if(this_handle == 0){
-                       this_handle = browser_handle;
-               }
--              SteamHTMLSurface()->KeyChar(this_handle, unicode_char, 
(ISteamHTMLSurface::EHTMLKeyModifiers)key_modifiers);
-+              SteamHTMLSurface()->KeyChar(this_handle, unicode_char, 
(EHTMLKeyModifiers)key_modifiers);
-       }
- }
- 
-@@ -2400,7 +2401,7 @@ void Steam::keyDown(uint32 native_key_code, int key_mo
-               if(this_handle == 0){
-                       this_handle = browser_handle;
-               }
--              SteamHTMLSurface()->KeyDown(this_handle, native_key_code, 
(ISteamHTMLSurface::EHTMLKeyModifiers)key_modifiers);
-+              SteamHTMLSurface()->KeyDown(this_handle, native_key_code, 
(EHTMLKeyModifiers)key_modifiers);
-       }
- }
- 
-@@ -2411,7 +2412,7 @@ void Steam::keyUp(uint32 native_key_code, int key_modi
-               if(this_handle == 0){
-                       this_handle = browser_handle;
-               }
--              SteamHTMLSurface()->KeyUp(this_handle, native_key_code, 
(ISteamHTMLSurface::EHTMLKeyModifiers)key_modifiers);
-+              SteamHTMLSurface()->KeyUp(this_handle, native_key_code, 
(EHTMLKeyModifiers)key_modifiers);
-       }
- }
- 
-@@ -2433,7 +2434,7 @@ void Steam::mouseDoubleClick(int mouse_button, uint32 
-               if(this_handle == 0){
-                       this_handle = browser_handle;
-               }
--              SteamHTMLSurface()->MouseDoubleClick(this_handle, 
(ISteamHTMLSurface::EHTMLMouseButton)mouse_button);
-+              SteamHTMLSurface()->MouseDoubleClick(this_handle, 
(EHTMLMouseButton)mouse_button);
-       }
- }
- 
-@@ -2444,7 +2445,7 @@ void Steam::mouseDown(int mouse_button, uint32 this_ha
-               if(this_handle == 0){
-                       this_handle = browser_handle;
-               }
--              SteamHTMLSurface()->MouseDown(this_handle, 
(ISteamHTMLSurface::EHTMLMouseButton)mouse_button);
-+              SteamHTMLSurface()->MouseDown(this_handle, 
(EHTMLMouseButton)mouse_button);
-       }
- }
- 
-@@ -2466,7 +2467,7 @@ void Steam::mouseUp(int mouse_button, uint32 this_hand
-               if(this_handle == 0){
-                       this_handle = browser_handle;
-               }
--              SteamHTMLSurface()->MouseUp(this_handle, 
(ISteamHTMLSurface::EHTMLMouseButton)mouse_button);
-+              SteamHTMLSurface()->MouseUp(this_handle, 
(EHTMLMouseButton)mouse_button);
-       }
- }
- 
-@@ -3212,6 +3213,8 @@ bool Steam::setInputActionManifestFilePath(const Strin
- 
- // Set the trigger effect for a DualSense controller
- void Steam::setDualSenseTriggerEffect(uint64_t input_handle, int 
parameter_index, int trigger_mask, int effect_mode, int position, int 
amplitude, int frequency){
-+      return;
-+      /*
-       if(SteamInput() != NULL){
-               ScePadTriggerEffectParam these_parameters;
-               memset(&these_parameters, 0, sizeof(these_parameters));
-@@ -3242,6 +3245,7 @@ void Steam::setDualSenseTriggerEffect(uint64_t input_h
-               
these_parameters.command[parameter_index].commandData.vibrationParam.frequency 
= frequency;
-               
SteamInput()->SetDualSenseTriggerEffect((InputHandle_t)input_handle, 
&these_parameters);
-       }
-+      */
- }
- 
- //! Waits on an IPC event from Steam sent when there is new data to be 
fetched from the data drop. Returns true when data was recievied before the 
timeout expires. Useful for games with a dedicated input thread.
-@@ -8251,7 +8255,7 @@ Dictionary Steam::initiateGameConnection(uint64_t serv
-               int authSize = 2048;
-               auth.resize(authSize);
-               CSteamID server = (uint64)server_id;
--              if(SteamUser()->InitiateGameConnection_DEPRECATED(&auth, 
authSize, server, server_ip, server_port, secure) > 0){
-+              if(SteamUser()->InitiateGameConnection(&auth, authSize, server, 
server_ip, server_port, secure) > 0){
-                       connection["auth_blob"] = auth;
-                       connection["server_id"] = server_id;
-                       connection["server_ip"] = server_ip;
-@@ -8350,7 +8354,7 @@ void Steam::stopVoiceRecording(){
- //! Notify the game server that we are disconnecting. NOTE: This is part of 
the old user authentication API and should not be mixed with the new API.
- void Steam::terminateGameConnection(uint32 server_ip, uint16 server_port){
-       if(SteamUser() != NULL){
--              SteamUser()->TerminateGameConnection_DEPRECATED(server_ip, 
server_port);
-+              SteamUser()->TerminateGameConnection(server_ip, server_port);
-       }
- }
- 
-@@ -10044,27 +10048,28 @@ void 
Steam::http_request_headers_received(HTTPRequestH
- //
- // Purpose: when callbacks are enabled this fires each time a controller 
action state changes
- void Steam::inputActionEventCallback(SteamInputActionEvent_t* call_data){
--      uint64_t input_handle = call_data->controllerHandle;
--      int event_type = call_data->eEventType;
--      uint64_t analog_handle = call_data->analogAction.actionHandle;
--      uint64_t digital_handle = call_data->digitalAction.actionHandle;
-+      return;
-+      //uint64_t input_handle = call_data->controllerHandle;
-+      //int event_type = call_data->eEventType;
-+      //uint64_t analog_handle = call_data->analogAction.actionHandle;
-+      //uint64_t digital_handle = call_data->digitalAction.actionHandle;
-       // Get the digital action data
--      Dictionary digital_action;
--      digital_action["state"] = 
call_data->digitalAction.digitalActionData.bState;
--      digital_action["active"] = 
call_data->digitalAction.digitalActionData.bActive;
-+      //Dictionary digital_action;
-+      //digital_action["state"] = 
call_data->digitalAction.digitalActionData.bState;
-+      //digital_action["active"] = 
call_data->digitalAction.digitalActionData.bActive;
-       // Get the analog action data
--      Dictionary analog_action;
--      analog_action["mode"] = call_data->analogAction.analogActionData.eMode;
--      analog_action["x"] = call_data->analogAction.analogActionData.x;
--      analog_action["y"] = call_data->analogAction.analogActionData.y;
--      analog_action["active"] = 
call_data->analogAction.analogActionData.bActive;
-+      //Dictionary analog_action;
-+      //analog_action["mode"] = 
call_data->analogAction.analogActionData.eMode;
-+      //analog_action["x"] = call_data->analogAction.analogActionData.x;
-+      //analog_action["y"] = call_data->analogAction.analogActionData.y;
-+      //analog_action["active"] = 
call_data->analogAction.analogActionData.bActive;
-       // Split into a dictionary since Godot won't allow more than 6 
arguments sent back
--      Dictionary action_information;
--      action_information["analog_action_handle"] = analog_handle;
--      action_information["analog_action_data"] = analog_action;
--      action_information["digital_action_handle"] = digital_handle;
--      action_information["digital_action_data"] = digital_action;
--      emit_signal("input_action_event", input_handle, event_type, 
action_information);
-+      //Dictionary action_information;
-+      //action_information["analog_action_handle"] = analog_handle;
-+      //action_information["analog_action_data"] = analog_action;
-+      //action_information["digital_action_handle"] = digital_handle;
-+      //action_information["digital_action_data"] = digital_action;
-+      //emit_signal("input_action_event", input_handle, event_type, 
action_information);
- }
- 
- //! Purpose: called when a new controller has been connected, will fire once 
per controller if multiple new controllers connect in the same frame
Index: godot/patches/patch-GodotSteam_godotsteam_godotsteam_h
===================================================================
RCS file: godot/patches/patch-GodotSteam_godotsteam_godotsteam_h
diff -N godot/patches/patch-GodotSteam_godotsteam_godotsteam_h
--- godot/patches/patch-GodotSteam_godotsteam_godotsteam_h      10 Oct 2022 
18:39:05 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-don't use isteamdualsense.h API while not part of games/goldberg_emulator
-
-Index: GodotSteam/godotsteam/godotsteam.h
---- GodotSteam/godotsteam/godotsteam.h.orig
-+++ GodotSteam/godotsteam/godotsteam.h
-@@ -23,7 +23,6 @@
- #include "steam/steam_api.h"
- #include "steam/steam_gameserver.h"
- #include "steam/steamnetworkingfakeip.h"
--#include "steam/isteamdualsense.h"
- 
- // Include Godot headers
- #include "core/object.h"
-@@ -1733,4 +1732,4 @@ class Steam: public Object {
-               CCallResult<Steam, CheckFileSignature_t> 
callResultCheckFileSignature;
-               void check_file_signature(CheckFileSignature_t *call_data, bool 
io_failure);
- };
--#endif // GODOTSTEAM_H
-\ No newline at end of file
-+#endif // GODOTSTEAM_H
Index: godot/patches/patch-godotsteam_godotsteam_cpp
===================================================================
RCS file: godot/patches/patch-godotsteam_godotsteam_cpp
diff -N godot/patches/patch-godotsteam_godotsteam_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ godot/patches/patch-godotsteam_godotsteam_cpp       28 Jul 2023 19:17:17 
-0000
@@ -0,0 +1,157 @@
+stub Steam::inputActionEventCallback
+stub setDualSenseTriggerEffect
+remove deprecated/incompatible namespaces ISteamHTMLSurface
+InitiateGameConnection_DEPRECATED => InitiateGameConnection
+fix DEFVAL(NULL) ambiguous conversion -> back port cherry-picked from
+commit 5f38ffca92fc348aa103903196f8bcec2cbbd38b
+
+Index: godotsteam/godotsteam.cpp
+--- godotsteam/godotsteam.cpp.orig
++++ godotsteam/godotsteam.cpp
+@@ -1866,7 +1866,7 @@ void Steam::keyChar(uint32 unicode_char, int key_modif
+               if(this_handle == 0){
+                       this_handle = browser_handle;
+               }
+-              SteamHTMLSurface()->KeyChar(this_handle, unicode_char, 
(ISteamHTMLSurface::EHTMLKeyModifiers)key_modifiers);
++              SteamHTMLSurface()->KeyChar(this_handle, unicode_char, 
(EHTMLKeyModifiers)key_modifiers);
+       }
+ }
+ 
+@@ -1877,7 +1877,7 @@ void Steam::keyDown(uint32 native_key_code, int key_mo
+               if(this_handle == 0){
+                       this_handle = browser_handle;
+               }
+-              SteamHTMLSurface()->KeyDown(this_handle, native_key_code, 
(ISteamHTMLSurface::EHTMLKeyModifiers)key_modifiers);
++              SteamHTMLSurface()->KeyDown(this_handle, native_key_code, 
(EHTMLKeyModifiers)key_modifiers);
+       }
+ }
+ 
+@@ -1888,7 +1888,7 @@ void Steam::keyUp(uint32 native_key_code, int key_modi
+               if(this_handle == 0){
+                       this_handle = browser_handle;
+               }
+-              SteamHTMLSurface()->KeyUp(this_handle, native_key_code, 
(ISteamHTMLSurface::EHTMLKeyModifiers)key_modifiers);
++              SteamHTMLSurface()->KeyUp(this_handle, native_key_code, 
(EHTMLKeyModifiers)key_modifiers);
+       }
+ }
+ 
+@@ -1910,7 +1910,7 @@ void Steam::mouseDoubleClick(HTMLMouseButton mouse_but
+               if(this_handle == 0){
+                       this_handle = browser_handle;
+               }
+-              SteamHTMLSurface()->MouseDoubleClick(this_handle, 
(ISteamHTMLSurface::EHTMLMouseButton)mouse_button);
++              SteamHTMLSurface()->MouseDoubleClick(this_handle, 
(EHTMLMouseButton)mouse_button);
+       }
+ }
+ 
+@@ -1921,7 +1921,7 @@ void Steam::mouseDown(HTMLMouseButton mouse_button, ui
+               if(this_handle == 0){
+                       this_handle = browser_handle;
+               }
+-              SteamHTMLSurface()->MouseDown(this_handle, 
(ISteamHTMLSurface::EHTMLMouseButton)mouse_button);
++              SteamHTMLSurface()->MouseDown(this_handle, 
(EHTMLMouseButton)mouse_button);
+       }
+ }
+ 
+@@ -1943,7 +1943,7 @@ void Steam::mouseUp(HTMLMouseButton mouse_button, uint
+               if(this_handle == 0){
+                       this_handle = browser_handle;
+               }
+-              SteamHTMLSurface()->MouseUp(this_handle, 
(ISteamHTMLSurface::EHTMLMouseButton)mouse_button);
++              SteamHTMLSurface()->MouseUp(this_handle, 
(EHTMLMouseButton)mouse_button);
+       }
+ }
+ 
+@@ -2689,6 +2689,8 @@ bool Steam::setInputActionManifestFilePath(const Strin
+ 
+ // Set the trigger effect for a DualSense controller
+ void Steam::setDualSenseTriggerEffect(uint64_t input_handle, int 
parameter_index, int trigger_mask, SCEPadTriggerEffectMode effect_mode, int 
position, int amplitude, int frequency){
++      return;
++      /*
+       if(SteamInput() != NULL){
+               ScePadTriggerEffectParam these_parameters;
+               memset(&these_parameters, 0, sizeof(these_parameters));
+@@ -2719,6 +2721,7 @@ void Steam::setDualSenseTriggerEffect(uint64_t input_h
+               
these_parameters.command[parameter_index].commandData.vibrationParam.frequency 
= frequency;
+               
SteamInput()->SetDualSenseTriggerEffect((InputHandle_t)input_handle, 
&these_parameters);
+       }
++      */
+ }
+ 
+ //! Waits on an IPC event from Steam sent when there is new data to be 
fetched from the data drop. Returns true when data was recievied before the 
timeout expires. Useful for games with a dedicated input thread.
+@@ -7892,7 +7895,7 @@ Dictionary Steam::initiateGameConnection(uint64_t serv
+               int authSize = 2048;
+               auth.resize(authSize);
+               CSteamID server = (uint64)server_id;
+-              if(SteamUser()->InitiateGameConnection_DEPRECATED(&auth, 
authSize, server, server_ip, server_port, secure) > 0){
++              if(SteamUser()->InitiateGameConnection(&auth, authSize, server, 
server_ip, server_port, secure) > 0){
+                       connection["auth_blob"] = auth;
+                       connection["server_id"] = server_id;
+                       connection["server_ip"] = server_ip;
+@@ -7991,7 +7994,7 @@ void Steam::stopVoiceRecording(){
+ //! Notify the game server that we are disconnecting. NOTE: This is part of 
the old user authentication API and should not be mixed with the new API.
+ void Steam::terminateGameConnection(uint32 server_ip, uint16 server_port){
+       if(SteamUser() != NULL){
+-              SteamUser()->TerminateGameConnection_DEPRECATED(server_ip, 
server_port);
++              SteamUser()->TerminateGameConnection(server_ip, server_port);
+       }
+ }
+ 
+@@ -9487,27 +9490,28 @@ void Steam::http_request_headers_received(HTTPRequestH
+ //
+ // Purpose: when callbacks are enabled this fires each time a controller 
action state changes
+ void Steam::inputActionEventCallback(SteamInputActionEvent_t* call_data){
+-      uint64_t input_handle = call_data->controllerHandle;
+-      int event_type = call_data->eEventType;
+-      uint64_t analog_handle = call_data->analogAction.actionHandle;
+-      uint64_t digital_handle = call_data->digitalAction.actionHandle;
++      return;
++      //uint64_t input_handle = call_data->controllerHandle;
++      //int event_type = call_data->eEventType;
++      //uint64_t analog_handle = call_data->analogAction.actionHandle;
++      //uint64_t digital_handle = call_data->digitalAction.actionHandle;
+       // Get the digital action data
+-      Dictionary digital_action;
+-      digital_action["state"] = 
call_data->digitalAction.digitalActionData.bState;
+-      digital_action["active"] = 
call_data->digitalAction.digitalActionData.bActive;
++      //Dictionary digital_action;
++      //digital_action["state"] = 
call_data->digitalAction.digitalActionData.bState;
++      //digital_action["active"] = 
call_data->digitalAction.digitalActionData.bActive;
+       // Get the analog action data
+-      Dictionary analog_action;
+-      analog_action["mode"] = call_data->analogAction.analogActionData.eMode;
+-      analog_action["x"] = call_data->analogAction.analogActionData.x;
+-      analog_action["y"] = call_data->analogAction.analogActionData.y;
+-      analog_action["active"] = 
call_data->analogAction.analogActionData.bActive;
++      //Dictionary analog_action;
++      //analog_action["mode"] = 
call_data->analogAction.analogActionData.eMode;
++      //analog_action["x"] = call_data->analogAction.analogActionData.x;
++      //analog_action["y"] = call_data->analogAction.analogActionData.y;
++      //analog_action["active"] = 
call_data->analogAction.analogActionData.bActive;
+       // Split into a dictionary since Godot won't allow more than 6 
arguments sent back
+-      Dictionary action_information;
+-      action_information["analog_action_handle"] = analog_handle;
+-      action_information["analog_action_data"] = analog_action;
+-      action_information["digital_action_handle"] = digital_handle;
+-      action_information["digital_action_data"] = digital_action;
+-      emit_signal("input_action_event", input_handle, event_type, 
action_information);
++      //Dictionary action_information;
++      //action_information["analog_action_handle"] = analog_handle;
++      //action_information["analog_action_data"] = analog_action;
++      //action_information["digital_action_handle"] = digital_handle;
++      //action_information["digital_action_data"] = digital_action;
++      //emit_signal("input_action_event", input_handle, event_type, 
action_information);
+ }
+ 
+ //! Purpose: called when a new controller has been connected, will fire once 
per controller if multiple new controllers connect in the same frame
+@@ -11682,8 +11686,8 @@ void Steam::_bind_methods(){
+       ClassDB::bind_method(D_METHOD("cancelAuthTicket", "auth_ticket"), 
&Steam::cancelAuthTicket);
+       ClassDB::bind_method(D_METHOD("decompressVoice", "voice", "voice_size", 
"sample_rate"), &Steam::decompressVoice);
+       ClassDB::bind_method(D_METHOD("endAuthSession", "steam_id"), 
&Steam::endAuthSession);
+-      ClassDB::bind_method(D_METHOD("getAuthSessionTicket", 
"identity_reference"), &Steam::getAuthSessionTicket, DEFVAL(NULL));
+-      ClassDB::bind_method(D_METHOD("getAuthTicketForWebApi", 
"identity_reference"), &Steam::getAuthTicketForWebApi, DEFVAL(NULL));
++      ClassDB::bind_method(D_METHOD("getAuthSessionTicket", 
"identity_reference"), &Steam::getAuthSessionTicket, DEFVAL(""));
++      ClassDB::bind_method(D_METHOD("getAuthTicketForWebApi", 
"identity_reference"), &Steam::getAuthTicketForWebApi, DEFVAL(""));
+       ClassDB::bind_method("getAvailableVoice", &Steam::getAvailableVoice);
+       ClassDB::bind_method("getDurationControl", &Steam::getDurationControl);
+       ClassDB::bind_method("getEncryptedAppTicket", 
&Steam::getEncryptedAppTicket);
Index: godot/patches/patch-godotsteam_godotsteam_h
===================================================================
RCS file: godot/patches/patch-godotsteam_godotsteam_h
diff -N godot/patches/patch-godotsteam_godotsteam_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ godot/patches/patch-godotsteam_godotsteam_h 28 Jul 2023 19:17:17 -0000
@@ -0,0 +1,13 @@
+don't use isteamdualsense.h API while not part of games/goldberg_emulator
+
+Index: godotsteam/godotsteam.h
+--- godotsteam/godotsteam.h.orig
++++ godotsteam/godotsteam.h
+@@ -22,7 +22,6 @@
+ // Include Steamworks API headers
+ #include "steam/steam_api.h"
+ #include "steam/steamnetworkingfakeip.h"
+-#include "steam/isteamdualsense.h"
+ 
+ // Include Godot headers
+ #include "core/object.h"
Index: hlsteam/Makefile
===================================================================
RCS file: /cvs/ports/games/hlsteam/Makefile,v
retrieving revision 1.5
diff -u -p -r1.5 Makefile
--- hlsteam/Makefile    4 Jan 2023 03:05:36 -0000       1.5
+++ hlsteam/Makefile    28 Jul 2023 19:17:17 -0000
@@ -5,6 +5,7 @@ GH_ACCOUNT =    HeapsIO
 GH_PROJECT =   hlsteam
 # checkout from 2022-03-22
 GH_COMMIT =    f774d8ea2b7255a3067254fde8d18063455dec24
+REVISION =     0
 CATEGORIES =   games
 MAINTAINER =   Thomas Frohwein <t...@openbsd.org>
 
@@ -13,7 +14,7 @@ PERMIT_PACKAGE =      Yes
 
 WANTLIB += ${COMPILER_LIBCXX} hl m steam_api
 
-FIX_CRLF_FILES =       Makefile native/gameserver.cpp
+FIX_CRLF_FILES =       Makefile native/common.cpp native/gameserver.cpp
 
 COMPILER =             base-clang ports-gcc
 LIB_DEPENDS =          games/goldberg_emulator \
Index: hlsteam/patches/patch-native_common_cpp
===================================================================
RCS file: hlsteam/patches/patch-native_common_cpp
diff -N hlsteam/patches/patch-native_common_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ hlsteam/patches/patch-native_common_cpp     28 Jul 2023 19:17:17 -0000
@@ -0,0 +1,14 @@
+match steam SDK 1.57 API
+
+Index: native/common.cpp
+--- native/common.cpp.orig
++++ native/common.cpp
+@@ -208,7 +208,7 @@ vdynamic *CallbackHandler::EncodeAuthSessionTicketResp
+ 
+ HL_PRIM vbyte *HL_NAME(get_auth_ticket)( int *size, int *authTicket ) {
+       vbyte *ticket = hl_alloc_bytes(1024);
+-      *authTicket = 
SteamUser()->GetAuthSessionTicket(ticket,1024,(uint32*)size);
++      *authTicket = 
SteamUser()->GetAuthSessionTicket(ticket,1024,(uint32*)size, NULL);
+       return ticket;
+ }
+ 

Reply via email to