Git Product home page Git Product logo

opend2's People

Contributors

eezstreet avatar germanaizek avatar mewmew avatar mysterywave avatar northernlight1 avatar sodomon2 avatar w1lford avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opend2's Issues

Requirements for Development

At the moment I see that you need a copy of D2 to compile the current build. I currently don't own a copy of D2 and won't know when I will. Is there a point sometime soon where you won't need a copy of D2 to contribute?

I also on a Mac, could you add instructions on how to compile on Mac?

It would also be great to have an active back log, so we can see what needs to be worked on.

I'm not an experienced game developer but I'd like to help out if/when I can, for the love of D2

Reducing the font

The font needs a little work. Should be a little thinner. Is D2Open using .ttf format exocet? Might need to bevel it in photoshop.

Open thread - discussion about project direction

The following are things that I want to tackle before getting into the complexity of a map renderer:

  • Standardized types. Instead of DWORD this, WORD that, let's use the following types: uint32_t, uint64_t, uint16_t, uint8_t, int32_t, int64_t, int16_t, int8_t.
  • Fix the audio system. Currently broken and doesn't support music.
  • OpenGL renderer. The current SDL renderer has bugs.
  • Investigate high CPU usage.
  • -direct aware filesystem. The current filesystem does not detect for -direct, but it should. Likewise, the MPQ access should be made transparent. Instead of querying for something from an MPQ and -then- opening it through MPQ methods, just use one call for opening a file. (The modcode should have no access to the MPQ code whatsoever)
  • Cleaned up DC6/DCC placement, draw either DCC as component based tokens or as overlays/missiles.
  • Generalize some of the existing data structures that are commonly used, but not put into formalized classes (looking at you, hash maps)

Then, the next steps can be:

  1. DS1/DT1 loader
  2. Map placement
  3. Entity control, placing of Type 1 and Type 2 objects in DS1s
  4. Movement
  5. Basic inventory management
  6. Basic combat (Normal Attack/Throw only)
  7. Basic monster AI
  8. Skills, magic items, ... the finer elements that make up Diablo 2
  9. Scripts for quests
  10. Mod support, .txt compiler, tools, plugin support, etc.

I want others to contribute what they think should be done to the code to make it something you're more willing to contribute to. I'll listen to any feedback, but understand that there are certain things that I am not interested in doing at this point:

  • Porting to Nintendo Switch, etc platforms (see point 10 above)
  • Widescreen support (see point 10 above)

Converting to another programming language is not something I want to do. I understand that not everyone is interested in writing super-verbose C/++, but I want to keep the project as close to the original game as I can get, minimize the number of dependencies that I have, and keep support for legacy systems.

Likewise, this is meant to be a self-contained project that others can learn from, so there's a lot of hand-crafted algorithms like hash maps. I originally started this project because I wanted to learn how to make my own high-performance isometric game engine, and having minimal coupling between components is ideal. If I decided later on to go the route of std::ifying or boost::ifying stuff later on in the name of performance, it's much easier to graft that kind of system onto what I have here, instead of doing it the other way around.

...plus, modern C++ looks gross, I'm sorry. :(

But here are some good things to discuss:

  • Overall structure of the project (is having modcode separated into DLLs a good idea? bad idea?)
  • Naming conventions
  • Things you genuinely want to see changed

Character Input Box disappear

Test Platform:Linux (Ubuntu 18.04 64bit)
Reproduce Steps:

  1. Open Program (game)
  2. Enter Single Player
  3. Because this is the initial creation, a character must be created.

image

the character name is not visible, so I can only blindly input its name.

OpenD2 error

Я попробовал запустить OpenD2.
вот что из этого вышло.

Translate google:
I tried to run an OpenD2.
that's what came of it.

1
2

Log: 1 - D2180405.txt


Я заметил, что в ошибке нет файла «patchstring.tbl».
я добавил «expandstring.tbl» и «string.tbl» в Patch_D2.мпк.
Вот что было дальше.

Translate google:
I noticed that there is no "patchstring.tbl" file in the error.
I added "expandstring.tbl" and "string.tbl" in "Patch_D2.mpq".
This is what happened next.

1
2
3

Log: D2180405.txt

Join efforts

Hello ! I'm opening an issue since I couldn't send a mail / message through twitter.

I saw this project at this very beginning and failed to follow its progress, but I now see you have a lot of stuff available.
I myself started a similar project quite some time ago https://github.com/Lectem/Worldstone, but due to lack of free time it is progressing way too slowly. I'd like to know what you think of joining efforts so that we don't end up having too many projects progressing each on its side, it seems like a waste of resources and potential to me.

If you'd like to discuss about it, I have a gitter channel where a few other people working on d2 engines roam https://gitter.im/Worldstone/Lobby. (Or we can just continue this discussion here/by mail)

While OpenD2 is at a more advanced stage than my project, I think our original goals are quite similar, though it seems OpenD2 is windows only for now ? (Don't be deceived by the few things that are actually on the Worldstone repository, I actually have decoding/rendering of sprites/tiles working and a lot more working locally, just not really cleaned up yet..)

Have a nice day !

Cannot compile

I cannot compile newest version from master. system is Linux, OpenSUSE Leap 15. everything related to SDL is installed to compile it.

[ 43%] Built target D2Client
[ 44%] Building CXX object CMakeFiles/game.dir/Game/Audio_SDL.cpp.o
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:34:79: error: macro "Log_WarnAssertReturn" requires 2 arguments, but only 1 given
   Log_WarnAssertReturn(SDL_GetNumAudioDevices(false) >= pConfig->dwAudioDevice);
                                                                               ^
In file included from /home/khazakar/OpenD2/Game/Diablo2.hpp:2:0,
                 from /home/khazakar/OpenD2/Game/Audio_SDL.hpp:2,
                 from /home/khazakar/OpenD2/Game/Audio_SDL.cpp:1:
/home/khazakar/OpenD2/Game/../Shared/D2Shared.hpp:691:80: warning: 'visibility' attribute ignored [-Wattributes]
 typedef D2EXPORT D2ModuleExportStrc* (*GetAPIType)(D2ModuleImportStrc* pImports);
                                                                                ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp: In function 'void Audio_SDL::Init(OpenD2ConfigStrc*)':
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:21:72: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   Log::Print(OpenD2LogFlags::PRIORITY_SYSTEMINFO, "SDL_Mixer init...\n");
                                                                        ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:22:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   Log::Print(OpenD2LogFlags::PRIORITY_SYSTEMINFO, "Enumerate audio devices:\n");
                                                                               ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:26:86: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Log::Print(OpenD2LogFlags::PRIORITY_SYSTEMINFO, "Device %d: %s\n", i, szDeviceName);
                                                                                      ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:34:3: error: 'Log_WarnAssertReturn' was not declared in this scope
   Log_WarnAssertReturn(SDL_GetNumAudioDevices(false) >= pConfig->dwAudioDevice);
   ^~~~~~~~~~~~~~~~~~~~
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:35:124: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   Log::Print(OpenD2LogFlags::PRIORITY_MESSAGE, "Output Device: %s\n", SDL_GetAudioDeviceName(pConfig->dwAudioDevice, false));
                                                                                                                            ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:41:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Log::Warning(__FILE__, __LINE__, "Could not open audio device.");
                                                                   ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:41:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/khazakar/OpenD2/Game/Audio_SDL.cpp: In function 'sfx_handle Audio_SDL::RegisterSound(char*)':
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:129:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Log::Warning(__FILE__, __LINE__, "Ran out of free sound space.");
                                                                   ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:129:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:143:81: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Log::Print(OpenD2LogFlags::PRIORITY_MESSAGE, "Failed to load %s", szAudioPath);
                                                                                 ^
In file included from /home/khazakar/OpenD2/Game/Audio_SDL.hpp:2:0,
                 from /home/khazakar/OpenD2/Game/Audio_SDL.cpp:1:
/home/khazakar/OpenD2/Game/Diablo2.hpp:722:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
 #define Log_WarnAssert(x) if(!(x)) { Log::Warning(__FILE__, __LINE__, "" #x); }
                                                                            ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:148:3: note: in expansion of macro 'Log_WarnAssert'
   Log_WarnAssert(sdlFile);
   ^~~~~~~~~~~~~~
/home/khazakar/OpenD2/Game/Diablo2.hpp:722:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
 #define Log_WarnAssert(x) if(!(x)) { Log::Warning(__FILE__, __LINE__, "" #x); }
                                                                            ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:148:3: note: in expansion of macro 'Log_WarnAssert'
   Log_WarnAssert(sdlFile);
   ^~~~~~~~~~~~~~
/home/khazakar/OpenD2/Game/Audio_SDL.cpp: In function 'mus_handle Audio_SDL::RegisterMusic(char*)':
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:160:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Log::Warning(__FILE__, __LINE__, "Ran out of free sound space.");
                                                                   ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:160:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:174:81: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Log::Print(OpenD2LogFlags::PRIORITY_MESSAGE, "Failed to load %s", szAudioPath);
                                                                                 ^
In file included from /home/khazakar/OpenD2/Game/Audio_SDL.hpp:2:0,
                 from /home/khazakar/OpenD2/Game/Audio_SDL.cpp:1:
/home/khazakar/OpenD2/Game/Diablo2.hpp:722:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
 #define Log_WarnAssert(x) if(!(x)) { Log::Warning(__FILE__, __LINE__, "" #x); }
                                                                            ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:179:3: note: in expansion of macro 'Log_WarnAssert'
   Log_WarnAssert(sdlFile);
   ^~~~~~~~~~~~~~
/home/khazakar/OpenD2/Game/Diablo2.hpp:722:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
 #define Log_WarnAssert(x) if(!(x)) { Log::Warning(__FILE__, __LINE__, "" #x); }
                                                                            ^
/home/khazakar/OpenD2/Game/Audio_SDL.cpp:179:3: note: in expansion of macro 'Log_WarnAssert'
   Log_WarnAssert(sdlFile);
   ^~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/game.dir/build.make:76: CMakeFiles/game.dir/Game/Audio_SDL.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:110: CMakeFiles/game.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Fix MPQ load order.

The correct load order of the MPQs is this:

d2data.mpq
d2char.mpq
d2sfx.mpq
d2speech.mpq
d2music.mpq
d2video.mpq
d2delta.mpq
d2kfixup.mpq
d2exp.mpq
d2xvideo.mpq
d2xtalk.mpq
d2xmusic.mpq
patch_d2.mpq

It should be made sure that it's accurate.

Library issues in Linux (possibly Windows)

[ 83%] Linking CXX executable game
/usr/bin/ld: CMakeFiles/game.dir/Game/Renderer_SDL.cpp.o: undefined reference to symbol 'SDL_CreateTexture'
/usr/bin/ld: /usr/lib/libSDL2-2.0.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/game.dir/build.make:489: game] Error 1
make[1]: *** [CMakeFiles/Makefile2:110: CMakeFiles/game.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

This isn't the first time I've had this problem with other code bases, but, I've never seen a method to correct for this.

Cannot start game (error 0xc000007b)

Compiled the project using Visual Studio 2017, attempted to debug and got the following error:

The application was unable to start correctly (0xc000007b). Click OK to close the application.

Using Visual Studio 15.6.2 on Windows 10 x64.

Any idea what might be going wrong?

EDIT: I had the 64-bit version of SDL_net.dll. I replaced SDL2.dll and SDL_net.dll with their 32-bit variants and the issue is gone.

D2Menu Character Create Screen Offsets DynamicPanel off the screen

The original code sets the x and y values to 320 and 490 respectively in the constructor of the D2Panel for creating characters dynamically, which includes the widgets NameEntry, ExpansionCheckBox and HardcoreCheckBox.

When AddWidget is called for those widgets listed above the following lines do not produce the expected behavior for the relative position of the widgets in conjunction with the code responsible for drawing a TextEntry as well as the CheckBox widget.

In AddWidget we have:

pWidget->x += x; pWidget->y += y;

If the owners position x value is set to 320, and current pWidget x position is set to 0 then pWidgets position would be 320 still which is all good, but if you look in the Draw() method of the D2Widget_TextEntry::Draw we have the following code:

engine->R_DrawText(cl.font16, szLabel, m_pOwner->x + x, m_pOwner->y + y - 15, w, 10, ALIGN_LEFT, ALIGN_BOTTOM);

As you can see it takes the owners position, in this case the 320 and adds it to widgets 320 x position and this will go off the screen and not render anything.

Possible solution, quick and dirty is to remove the x and y value assignments in the D2 dynamic Panel creation, and add the position values to the widget x y coordinates directly, or fix the actual relative position calculations in the widget draw call.

I believe all the other widgets just hardcode the relative position so none of those have these issues.

Unpacked MPQ files not supported.

Some files, such as the Assassin and Druid animations, do not use compression within the MPQ. This is currently unsupported and will lead to errors.

building on linux

Hi there,
I've tried to build OpenD2 project on my Fedora, and reached this:

/home/username/git/d2/OpenD2/Modcode/Common/DataTables.cpp: In function ‘int DataTables_Load(const char*, void**, D2TxtLinkStrc**, size_t)’:
/home/username/git/d2/OpenD2/Modcode/Common/DataTables.cpp:65:3: error: ‘snprintf’ was not declared in this scope
   65 |   snprintf(szPath, MAX_D2PATH, "%s%s.bin", D2DATATABLES_DIR, szDataTableName);
      |   ^~~~~~~~
/home/username/git/d2/OpenD2/Modcode/Common/DataTables.cpp:2:1: note: ‘snprintf’ is defined in header ‘<cstdio>’; did you forget to ‘#include <cstdio>’?
    1 | #include "D2Common.hpp"
  +++ |+#include <cstdio>
    2 |
/home/username/git/d2/OpenD2/Modcode/Common/DataTables.cpp:76:2: error: ‘snprintf’ was not declared in this scope
   76 |  snprintf(szPath, MAX_D2PATH, "%s%s.txt", D2DATATABLES_DIR, szDataTableName);
      |  ^~~~~~~~
/home/username/git/d2/OpenD2/Modcode/Common/DataTables.cpp:76:2: note: ‘snprintf’ is defined in header ‘<cstdio>’; did you forget to ‘#include <cstdio>’?
make[2]: *** [CMakeFiles/D2Common.dir/build.make:135: CMakeFiles/D2Common.dir/Modcode/Common/DataTables.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:147: CMakeFiles/D2Common.dir/all] Error 2
make: *** [Makefile:104: all] Error 2

-- Check for working C compiler: /usr/bin/cc
cc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)

-- Check for working CXX compiler: /usr/bin/c++
c++ (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)

I've tried to include cstdio library, but had another errors.

precompiled version

Do you have a compiled version for this already?

I am really curious about this project.

Feature Request: Support GoG's Battle.net server?

I noticed in the Diablo 1 reverse engineering effort, that they support "GoG's Battle.net server".

Devilution is functional over both GoG's Battle.net server and IPX using an ipx-wrapper. Additionally if Standard.snp from StarCraft 1.16.1 is used, local UDP play also becomes available. There are programs like ZeroTier to connect UDP globally.

I understand that using Blizzard's battle.net servers might be an issue, but perhaps the GoG's Battle.net server would be more open?

After compile with Linux?

Hello All. I have set up this amazing project on my ubuntu machine and after configuring all the SDL packages I have a good compile. But when I compile... of course it says I need to specify a basepath.... my question is (and the project might not be this far along)... but I am a bit confused about how to run the game.

I have a purchased copy, and of course can download the client from Blizzard for Mac or Windows, but how does this help me with Ubuntu? Do you have to get the files onto a windows/mac machine and then copy them over to a linux directory? i.e. .mpq files and all the files from the install for things to work?

Thanks!

Free format for BINK videos?

Couldn't there be some kind of solution where the cinematics are converted from BINK in to a free format and allowed to be played in game?

Segmentation fault (core dumped)

After compile i run game and get error

~/diablo$ ./game +basepath="/home/ninazu/Desktop" +logflags=16
Segmentation fault (core dumped)

Log file are empty

StackTrace

Renderer_SDL_Init(D2GameConfigStrc*, OpenD2ConfigStrc*, SDL_Window*) 0x0000555c751f269f
Renderer::Init(D2GameConfigStrc*, OpenD2ConfigStrc*, SDL_Window*) 0x0000555c751eff33
Window::InitSDL(D2GameConfigStrc*, OpenD2ConfigStrc*) 0x0000555c751f74c5
InitGame(int, char**) 0x0000555c751f7dd4
main 0x0000555c751efe95
__libc_start_main 0x00007f6257d89b97
_start 0x0000555c751e6c1a

Renderer_SDL.cpp:1000, GetPalette return nullptr

Status on logic calculations

Most D2 implementations never make it this far because they get stuck on the low level stuff, networking etc. Have you guys made any headway parsing the CSVs and using them to do anything yet?

  • Spell logic (energy shield, etc.)
  • AI
  • Level generation
  • Item generation
  • Horadric cube recipe generator

I'm looking around for anything pre-existing

Unable to compile on Linux

OpenD2-EXEReplacement/Game/Platform_Windows.cpp:3:10: fatal error: Windows.h: No such file or directory
 #include <Windows.h>
          ^~~~~~~~~~~
compilation terminated.
CMakeFiles/game.dir/build.make:62: recipe for target 'CMakeFiles/game.dir/Game/Platform_Windows.cpp.o' failed
make[2]: *** [CMakeFiles/game.dir/Game/Platform_Windows.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/game.dir/all' failed
make[1]: *** [CMakeFiles/game.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Linux does not support libraries such as <Windows.h>. I downloaded the .tar.gz link in the latest release but it still contained windows-specific libraries. This will make it impossible to compile on linux.

By not providing FindSDL2.cmake

Hi,

SDL2 installed:

$ rpm -ql SDL2-devel
/usr/bin/sdl2-config
/usr/include/SDL2
/usr/include/SDL2/SDL.h
/usr/include/SDL2/SDL_assert.h
/usr/include/SDL2/SDL_atomic.h
/usr/include/SDL2/SDL_audio.h
/usr/include/SDL2/SDL_bits.h
/usr/include/SDL2/SDL_blendmode.h
/usr/include/SDL2/SDL_clipboard.h
/usr/include/SDL2/SDL_config-mips64el.h
/usr/include/SDL2/SDL_config.h
/usr/include/SDL2/SDL_cpuinfo.h
/usr/include/SDL2/SDL_endian.h
/usr/include/SDL2/SDL_error.h
/usr/include/SDL2/SDL_events.h
/usr/include/SDL2/SDL_filesystem.h
/usr/include/SDL2/SDL_gamecontroller.h
/usr/include/SDL2/SDL_gesture.h
/usr/include/SDL2/SDL_haptic.h
/usr/include/SDL2/SDL_hints.h
/usr/include/SDL2/SDL_joystick.h
/usr/include/SDL2/SDL_keyboard.h
/usr/include/SDL2/SDL_keycode.h
/usr/include/SDL2/SDL_loadso.h
/usr/include/SDL2/SDL_log.h
/usr/include/SDL2/SDL_main.h
/usr/include/SDL2/SDL_messagebox.h
/usr/include/SDL2/SDL_mouse.h
/usr/include/SDL2/SDL_mutex.h
/usr/include/SDL2/SDL_name.h
/usr/include/SDL2/SDL_opengl.h
/usr/include/SDL2/SDL_opengles.h
/usr/include/SDL2/SDL_opengles2.h
/usr/include/SDL2/SDL_pixels.h
/usr/include/SDL2/SDL_platform.h
/usr/include/SDL2/SDL_power.h
/usr/include/SDL2/SDL_quit.h
/usr/include/SDL2/SDL_rect.h
/usr/include/SDL2/SDL_render.h
/usr/include/SDL2/SDL_revision.h
/usr/include/SDL2/SDL_rwops.h
/usr/include/SDL2/SDL_scancode.h
/usr/include/SDL2/SDL_shape.h
/usr/include/SDL2/SDL_stdinc.h
/usr/include/SDL2/SDL_surface.h
/usr/include/SDL2/SDL_system.h
/usr/include/SDL2/SDL_syswm.h
/usr/include/SDL2/SDL_test.h
/usr/include/SDL2/SDL_test_assert.h
/usr/include/SDL2/SDL_test_common.h
/usr/include/SDL2/SDL_test_compare.h
/usr/include/SDL2/SDL_test_crc32.h
/usr/include/SDL2/SDL_test_font.h
/usr/include/SDL2/SDL_test_fuzzer.h
/usr/include/SDL2/SDL_test_harness.h
/usr/include/SDL2/SDL_test_images.h
/usr/include/SDL2/SDL_test_log.h
/usr/include/SDL2/SDL_test_md5.h
/usr/include/SDL2/SDL_test_random.h
/usr/include/SDL2/SDL_thread.h
/usr/include/SDL2/SDL_timer.h
/usr/include/SDL2/SDL_touch.h
/usr/include/SDL2/SDL_types.h
/usr/include/SDL2/SDL_version.h
/usr/include/SDL2/SDL_video.h
/usr/include/SDL2/begin_code.h
/usr/include/SDL2/close_code.h
/usr/lib64/libSDL2.so
/usr/lib64/pkgconfig/sdl2.pc
/usr/share/aclocal/sdl2.m4
/usr/share/doc/SDL2-devel
/usr/share/doc/SDL2-devel/README.txt
/usr/share/doc/SDL2-devel/TODO.txt
/usr/share/doc/SDL2-devel/WhatsNew.txt

But failed to build:

CMake Error at CMakeLists.txt:66 (find_package):
  By not providing "FindSDL2.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "SDL2", but
  CMake did not find one.

  Could not find a package configuration file provided by "SDL2" with any of
  the following names:

    SDL2Config.cmake
    sdl2-config.cmake

  Add the installation prefix of "SDL2" to CMAKE_PREFIX_PATH or set
  "SDL2_DIR" to a directory containing one of the above files.  If "SDL2"
  provides a separate development package or SDK, be sure it has been
  installed.

Leslie Zhai

Cyrillic fonts are not displayed

Мне кажется проблема с отображением шрифтов кириллицы(P.S. Это то же самое что и латиница для английского).
Поправив "TBL::Register", я добился нормального возврата функции, но по прежнему без результата.

It seems to me a problem with the display of Cyrillic fonts (P.S. This is the same as Latin for English).
Correcting "TBL :: Register", I achieved a normal return of the function, but still without result.


image 1


Вот две версии перевода, которые чаще всего используют.
Here are two versions of the translation that most often use.

[Russian Localization].zip


P.S. translate google

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.