Commit Graph

492 Commits

Author SHA1 Message Date
superp00t
b0566ad8d7 feat(client): OsGui functions for linux 2024-09-06 23:39:33 -04:00
superp00t
eef37c109d fix(gx): if WHOA_BUILD_GLSDL, link SDL2 to event module 2024-09-06 14:17:24 -04:00
superp00t
ddcdff5e51 fix(gx): use std::abs instead of std::fabsf 2024-09-06 14:00:38 -04:00
superp00t
0ec76b4305 chore(build): add cursor module to source 2024-09-06 12:33:11 -04:00
superp00t
9fc5476ef7 feat(gx): add broken cursor drawing implementation 2024-09-06 12:32:50 -04:00
superp00t
520b6254b3 feat(gx): add more readable error for initializing an unknown device 2024-09-06 12:32:26 -04:00
superp00t
c6e1751bbe feat(texture): implemented TextureLoadImage API, also support loading and mipping TGA files 2024-09-06 12:31:08 -04:00
superp00t
3425aefc73 fix(sound): use WHOA_BUILD_SOUND 2024-09-06 12:29:58 -04:00
superp00t
e954521204 feat(util): implement SFile::{FileExistsEx, FileExists, SetFilePointer} 2024-09-06 12:28:57 -04:00
superp00t
4c6f78eda4 feat(ui): CSimpleTop::SetCursor 2024-09-06 12:27:55 -04:00
superp00t
671fd73fd3 feat(glue): set up cursor image from CGlueMgr 2024-09-06 12:26:04 -04:00
superp00t
dd7dee7232 feat(event): implement OsInputGetMousePosition; add common behavior for SDL interaction regardless of your OS 2024-09-06 12:24:35 -04:00
superp00t
29bc21a242 feat(cursor): add cursor module that stores and updates various cursor images 2024-09-06 12:22:01 -04:00
superp00t
7a2376741d fix(console): use WHOA_BUILD_GLSDL macro to detect whether GLSDL device is supported in g_gxApiSupported 2024-09-06 12:20:55 -04:00
superp00t
1931efdfb5 refactor(style): indent ugly data block 2024-09-06 12:19:31 -04:00
superp00t
f28817df6a feat(app): provide icons and resource info for Windows builds 2024-09-06 12:18:29 -04:00
superp00t
422a36cd93 fix(gx): log what api is being used when initializing device 2024-07-22 16:16:41 -04:00
superp00t
6fa58683ad fix(glsdl): use SDL2 'centered' values for new window 2024-07-22 16:15:35 -04:00
superp00t
1b4f1dba86 fix(gx): simplified gx device creation according to api enum 2024-07-22 01:21:08 -04:00
superp00t
5229b9b972 fix(gx): only use GLSDL if compiled with CMake variable WHOA_BUILD_GLSDL 2024-07-22 00:43:39 -04:00
superp00t
d067eb1ae2 feat(build): UBsan can be enabled or disabled with WHOA_UB_SAN. GLSDL can be toggled with WHOA_BUILD_GLSDL 2024-07-21 20:04:32 -04:00
superp00t
b3be0e0a7c fix(ui): link sound, not FMOD 2024-07-21 19:25:57 -04:00
superp00t
f061cd0cc0 chore(build): WHOA_BUILD_FMOD variable now determines whether FMOD is used 2024-07-21 18:45:24 -04:00
superp00t
2a46ce4d6d feat(build): to compile with FMOD support, WHOA_BUILD_FMOD must be passed into CMake 2024-07-21 18:39:52 -04:00
superp00t
5f3eadea1e fix(font): specify 'std' namespace when accessing floor() to avoid double function 2024-07-21 18:30:33 -04:00
superp00t
20f392cd74 chore(build): make Thunderbrew zig-buildable 2024-07-21 16:41:14 -04:00
Joshua Achorn
c6e2947506 fix(gx): size_t is declared in <cstddef>, not <cstdint> 2024-03-29 22:53:29 -04:00
Joshua Achorn
64f20e6fee fix(gx): removed some bad class declaration 2024-03-29 22:47:30 -04:00
superp00t
f81a6fb92b fix(gx): dispatch SDL window events in SceneClear() 2024-03-05 16:39:45 -05:00
superp00t
2fb754a83a refactor(thunderbrew): use static size members instead of null-termination to delimit FrameScript_Method arrays 2024-03-05 16:24:33 -05:00
VDm
32cfe08d0b
feat(sound): Small script related improvements
* chore(build): rename src/util/Log.* to SysMessage.*

* chore(ui): implement SetNonSpaceWrap() for error messages

* chore(ui): move Video Script methods into CGVideoOptions class

* chore(script): temporary fix GetNumOutputDrivers to eliminate loading errors

* feat(sound): add SI2 Log methods

* chore(sound): add SI2 CVars

* chore(ui): implement Script_PlayGlueMusic

* chore(sound): update SI2::Init()

* fix: resolve compilation errors in variadic macros SI2_ERR and SI2_LOG

---------

Co-authored-by: Tristan Cormier <cormiert2@outlook.com>
2024-03-05 15:53:07 -05:00
superp00t
8596860120 fix(glsdl): move SDL event dispatching to different function 2024-03-05 01:52:10 -05:00
superp00t
5240db6e0f chore(util): fix indentation in scoped switch cases 2024-02-19 01:34:23 -05:00
superp00t
6a06eb16e7 fix(util): SFile::Open() should set to nullptr even in the case of a failure 2024-02-17 21:58:52 -05:00
superp00t
1be8d5539c fix(util): fix SFile typos 2024-02-17 21:54:35 -05:00
superp00t
f135e8746b fix(util): add missing STORM_ASSERT include 2024-02-17 21:38:58 -05:00
superp00t
ac395c287d fix(util): convert void pointer to StreamRecord pointer when trying to read 2024-02-17 21:38:34 -05:00
superp00t
70642dec21 fix(gx): SFile can read from an MPQ-archived file or a plain file 2024-02-17 21:31:52 -05:00
superp00t
e20f185f75 fix(gx): file pointer should be initialized to nullptr because its value is used as a condition 2024-02-17 21:29:01 -05:00
superp00t
18d7f60df0 fix(client): SetPaths() before OpenArchives(), for obvious reasons 2024-02-12 17:35:02 -05:00
superp00t
c2a22d8672 fix(model): add missing <cstdio> include for sprintf 2024-02-11 17:29:52 -05:00
VDm
f86f6d6d09
feat(build): add StormLib (#4)
* feat(app): add StormLib

* feat(app): add OpenArchives

* feat(util): update SFile to work with StormLib

* feat(app): update SFile

* feat(util): update SFile with logging (Windows only)

* feat(ui): implemented termination w/o notice

* chore(build): update StormLib

* chore(util): replace std::string with SStr* functions

* fix(stormlib): dwFlags argument for SFileOpenPatchArchive

* chore(ui): add Script_* stubs

* chore(util): clean up SFile::OpenEx

* chore(build): update StormLib

---------

Co-authored-by: Phaneron <superp00t@tutanota.com>
2024-02-11 17:19:18 -05:00
superp00t
00d69919dd chore(build): merge changes to vendor/CMakeLists.txt 2024-02-05 18:39:41 -05:00
fallenoak
967534c96b
chore(model): improve argument names 2024-01-18 22:06:42 -06:00
superp00t
d731564ef1 fix(console): use correct logic for handling slow WTF file loading 2023-12-19 04:23:33 -05:00
superp00t
0193f00bbc fix(console): use correct WTF\ alternate path when opening cvar 2023-12-19 04:18:17 -05:00
superp00t
25063fa34a fix(console): createDisposition is not a bitfield but an enum 2023-12-19 04:17:05 -05:00
superp00t
0f04abb9de fix(gx): remove stub NewGLSDL when compiling for macOS 2023-12-16 21:03:53 -05:00
superp00t
d6de5b56ec fix(console): use InternalSet() when setting the launch value of CVar gxApi 2023-12-16 20:28:23 -05:00
superp00t
742e53f148 feat(event): make OsInputGet dispatch queued events on Linux 2023-12-13 20:28:12 -05:00
superp00t
4ecdf64491 fix(console): set gxApi after being hinted 2023-12-10 22:40:10 -05:00
superp00t
7859f381ce fix(console): gxApi string comparison should be case-insensitive 2023-12-10 22:35:51 -05:00
superp00t
073c7d7dc0 fix(gx): CGxDeviceGLSDL should set its gxApi value to GxApi_GLSDL 2023-12-10 19:19:03 -05:00
superp00t
6bf87c4f2d feat(gx): detach CGxDeviceGLSDL from GxApi_OpenGl handling 2023-12-10 19:04:57 -05:00
superp00t
c6cf2814df fix(gx): supportedApi, not supported 2023-12-10 19:02:00 -05:00
superp00t
8fe559c2d8 feat(console): allow graphics device to be initialized using hints from CVar as well as a command-line override 2023-12-10 18:56:40 -05:00
superp00t
f03ea10648 fix(gx): create CGxDeviceGLSDL using GxApi_GLSDL 2023-12-10 18:55:04 -05:00
superp00t
bd9e145557 feat(gx): add EGxApi value GxApi_GLSDL 2023-12-10 18:53:52 -05:00
superp00t
051d104ff7 feat(event): run event scheduler on Linux 2023-12-04 19:22:13 -05:00
superp00t
2aa3bd3d04 fix(util): nest forward declaration of StreamRecord 2023-12-04 19:15:37 -05:00
superp00t
76b92d1199 fix(util): bytesread, not bytesRead 2023-12-04 19:09:40 -05:00
superp00t
f072312386 fix(util): forward declare Blizzard::File::StreamRecord inside of SFile.hpp 2023-12-04 19:08:41 -05:00
superp00t
0e665e8c5e fix(util): link BlizzardCore to util module 2023-12-04 19:01:43 -05:00
superp00t
0302864f8d feat(util): SFile functions now use the BlizzardCore filesystem utilities 2023-12-04 18:54:37 -05:00
superp00t
1570d3dc99 fix(gx): create GLSDL graphics device on Linux 2023-12-02 12:28:53 -05:00
superp00t
b379e06194 fix(gx): add missing include <cstring> 2023-12-02 12:18:48 -05:00
superp00t
56439993ba feat(gx): implement GLSDLDevice::SetScissor 2023-11-30 22:32:07 -05:00
superp00t
1620994f02 fix(gx): typo 2023-11-30 16:13:08 -05:00
superp00t
47b9878e3e fix(gx): restore old behavior to GLSDL 2023-11-30 16:11:40 -05:00
superp00t
29edb4e032 fix(gx): return fallback sample count 2023-11-26 15:38:57 -05:00
superp00t
697f3ca9f6 fix(gx): disable unused code block pertaining to multisamples 2023-11-26 15:12:00 -05:00
superp00t
bf0fa09160 fix(gx): do glFlush() before swapping buffers 2023-11-26 15:11:22 -05:00
superp00t
3da866cfb0 fix(gx): include CGxDeviceGLSDL 2023-11-26 14:52:03 -05:00
superp00t
884d208bd0 feat(gx): resize GLSDL window with SDL resize event 2023-11-26 14:51:01 -05:00
superp00t
21dcc7d8ae feat(gx): handle SDL window resize event 2023-11-26 14:42:47 -05:00
superp00t
dbac391d9e fix(gx): change charactersize to int32 2023-11-26 12:43:31 -05:00
superp00t
2dd65b2b5d fix(gx): SUniSGetUTF8, not SUniGetUTF8 2023-11-26 12:25:07 -05:00
superp00t
18572b35fc fix(gx): include <storm/Unicode.hpp 2023-11-26 12:22:36 -05:00
superp00t
a336165cef feat(gx): translate SDL_TextInput events into OS_INPUT_CHAR events 2023-11-26 12:13:32 -05:00
superp00t
c0d5e2a0c8 feat(gx): GLSDL window closes upon SDL_EVENT_QUIT 2023-11-24 23:52:34 -05:00
superp00t
73912ed71a feat(gx): correct translation of mouse button index 2023-11-24 23:51:01 -05:00
superp00t
49bc9d5d8b feat(gx): GLSDL window dispatches mouse button events 2023-11-24 23:25:58 -05:00
superp00t
eccf4db2e0 feat(gx): GLSDL window dispatches mouse and key events to input queue 2023-11-24 19:33:48 -05:00
superp00t
ec66da49c5 fix(gx): when not on Windows or Linux, use dummy NewOpenGl 2023-11-18 11:30:06 -05:00
Phaneron
706c8903a1
feat(gx): add incomplete 'CGxDeviceGLSDL' (#2)
* chore(build): add vendored SDL 3.0.0 library

* chore(build): add vendored glew-cmake-2.2.0 library

* feat(console): in the presence of -opengl launch flag, change GxApi to OpenGl

* feat(gx): add uncompleted CGxDeviceGLSDL targeting Windows and Linux

* chore(build): change SDL3 linkage from shared (bad) to to static (good)
2023-11-18 10:50:16 -05:00
superp00t
934e0fb600 fix(client): define login CVars as static variables part of class ClientServices 2023-09-01 22:07:33 -04:00
superp00t
127b83f24c fix(client): define login CVars inside ClientServices.cpp 2023-09-01 21:59:50 -04:00
superp00t
0b6ca30f7d fix(client): include 'console/Client.hpp' 2023-09-01 21:28:54 -04:00
superp00t
77608bab14 fix(client): missing static specifier 2023-09-01 21:28:09 -04:00
superp00t
5928749866 feat(client): typos 2023-09-01 21:24:17 -04:00
superp00t
d60b85f85c feat(client): use 'realmList' CVar when connecting to realm list server 2023-09-01 21:14:28 -04:00
superp00t
9096894a21 fix(console): query if either CTRL key is pressed in OnKeyDownRepeat 2023-08-25 16:04:34 -04:00
superp00t
a6550c7c76 fix(console): get input line in OnKeyDownRepeat 2023-08-25 16:03:43 -04:00
superp00t
eb29dfd933 feat(console): handle some repeating key input events 2023-08-25 16:02:56 -04:00
superp00t
5bb6123a43 fix(console): fix improper printing in 'cvarlist' command 2023-08-25 01:06:37 -04:00
superp00t
f6fba9b74c fix(console): fix improper printing in 'cvarlist' command 2023-08-25 00:57:25 -04:00
superp00t
93be23dacc fix(client): include <bc/os/Path.hpp> 2023-08-24 23:30:06 -04:00
superp00t
8e1869ffc1 fix(console): fix cvar iteration names 2023-08-24 23:25:55 -04:00
superp00t
0bc324fb97 fix(console): add missing argument to CVar::Set 2023-08-24 23:18:46 -04:00
superp00t
ad147508a1 fix(console): specify CVar namespace when using s_registeredCVars 2023-08-24 23:15:39 -04:00
superp00t
8e5b32555c fix(console): CVar::Load functions are static 2023-08-24 23:12:13 -04:00
superp00t
c3827174e9 fix(console): forward declare command handlers 2023-08-24 22:40:26 -04:00
superp00t
089d5438a1 fix(console): fix SetCommandHandler 2023-08-24 22:35:39 -04:00
superp00t
17fc9017e0 feat(console): add functions to reset and default cvars 2023-08-24 22:24:47 -04:00
superp00t
851c1aea5b fix(util): remove placeholder OsCreateDirectory 2023-08-24 21:29:44 -04:00
superp00t
2fbae5bf52 fix(util): correct string empty checks 2023-08-24 21:25:02 -04:00
superp00t
1219279a2d feat(console): load console variables from WTF files 2023-08-24 20:51:30 -04:00
superp00t
5c75a80a15 fix(event): use ExitProcess() to actually exit on Windows, exit() doesn't work 2023-08-17 05:43:24 -04:00
superp00t
532d63bdc5 fix(console): std::size not available in C++11 2023-08-16 21:08:48 -04:00
superp00t
e257ab6c88 fix(console): include console/Console.hpp in ClearConsole command file 2023-08-16 19:35:06 -04:00
superp00t
1dfb507c53 fix(console): expose ConsoleClear() in console/Console.hpp 2023-08-16 19:29:42 -04:00
superp00t
8a7d89b52f feat(gx): implement GxuFontClearBatch 2023-08-16 19:24:24 -04:00
superp00t
647d2b622f fix(console): include <cstdio> 2023-08-16 18:27:40 -04:00
superp00t
8e75a59d37 fix(console): include <cstdarg> 2023-08-16 18:23:34 -04:00
superp00t
d6965d392e fix(console): replace definitions 2023-08-16 18:18:01 -04:00
superp00t
47e8d94842 fix(console): rename macros and add enum EXECMODE 2023-08-16 17:51:14 -04:00
superp00t
ee51e76795 fix(console): new types included 2023-08-16 17:38:37 -04:00
superp00t
394d4ac321 tidy(console): move several types into Types.hpp 2023-08-16 17:05:43 -04:00
superp00t
c05d229b2e fix(console): remove duplicate CATEGORY 2023-08-16 17:02:55 -04:00
superp00t
3c7300a614 fix(console): include console/Command.hpp in CVar.cpp 2023-08-16 16:49:21 -04:00
superp00t
0397579ca9 fix(console): add command category enum 2023-08-16 16:44:20 -04:00
superp00t
384e52c7d1 feat(console): limited console implementation 2023-08-16 16:37:38 -04:00
Phaneron
9c3bc2203d
Merge pull request #1 from superp00t/feat-event-implement-sync-key-state
feat(event): implement synchronous key and mouse state tracking
2023-08-15 23:52:38 -04:00
superp00t
f7bc2d96bf fix(command): C++11 doesn't have std::size, use sizeof 2023-08-15 03:58:53 -04:00
superp00t
2e0df837a9 fix(command): include <vector> for std::size function 2023-08-15 03:46:39 -04:00
superp00t
f760dd45f1 fix(command): fix enums and make functions nonstatic 2023-08-15 03:39:39 -04:00
superp00t
37460378a8 feat(console): toggle console access based on -console flag 2023-08-14 23:00:04 -04:00
superp00t
04e625f6a7 tidy(client): split CmdLine functions into separate files 2023-08-14 22:57:31 -04:00
superp00t
b408818e74 feat(client): process command-line arguments in InitializeGlobal() 2023-08-14 17:03:02 -04:00
superp00t
b92c658dd0 feat(app): parse command line arguments at launch on Unixlikes 2023-08-14 16:29:21 -04:00
superp00t
3ee7e489aa feat(event): implement synchronous key and mouse state tracking 2023-04-29 23:12:53 -04:00
fallenoak
df1ab32267
feat(console): animate console open and close 2023-04-17 22:44:44 -05:00
Tristan 'Natrist' Cormier
56092c6700
feat(console): partially implement console key down handler 2023-04-17 21:10:10 -05:00
fallenoak
884e491b25
chore(ui): clean up script handlers for CScriptObject 2023-04-17 18:15:40 -05:00
fallenoak
bc1ce52f7d
chore(gx): use uint32_t union member in CGxStateBom when appropriate 2023-04-17 16:52:11 -05:00
fallenoak
58272f1212
chore(gx): clean up function declarations in GLDevice 2023-04-17 12:16:38 -05:00
fallenoak
01ca76788c
chore(gx): clean up member function declarations in CGxMatrixStack 2023-04-15 21:23:03 -05:00
fallenoak
912d643e9c
chore(gx): add flag enum to CGxMatrixStack 2023-04-15 21:21:27 -05:00
Tristan 'Natrist' Cormier
3549abd87f
feat(console): add helpers for console hotkey 2023-04-15 16:33:17 -05:00
fallenoak
309ba8085c
feat(console): enable console access when initializing device 2023-04-15 16:14:15 -05:00
Tristan 'Natrist' Cormier
ef71ddc46e
feat(console): add helpers for console access enabled state 2023-04-15 16:03:58 -05:00
Tristan 'Natrist' Cormier
092ba0f881
feat(console): add helpers for console active state 2023-04-15 14:40:07 -05:00
fallenoak
d67e13087a
feat(gx): sync viewport in d3d backend 2023-04-15 13:56:49 -05:00
fallenoak
37996fa79c
feat(gx): set marker when viewport changes 2023-04-15 12:36:57 -05:00
fallenoak
5174970b24
feat(gx): sync projection and view xforms in d3d backend 2023-04-15 12:14:33 -05:00
fallenoak
c0e623d02b
feat(gx): add const getter for top of matrix stack 2023-04-15 10:32:07 -05:00
fallenoak
4a1101bd7d
feat(gx): stub ffp state syncing in d3d backend 2023-04-15 10:04:29 -05:00
fallenoak
36fa30eba8
feat(gx): add equality operator to CGxStateBom 2023-04-15 09:16:59 -05:00
fallenoak
317d94cd1a
feat(gx): handle projection and view matrices in GLL backend 2023-04-14 08:02:40 -05:00
fallenoak
eb70607750
fix(gx): only change vertex array FFP state for used attrib slots 2023-04-14 07:45:19 -05:00