Coder Social home page Coder Social logo

openriichi's People

Contributors

ccp-lease avatar fluffystuff 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

openriichi's Issues

error when building on arch linux

When I tried building the project on arch linux I got the following error

error: Delegates with target are not supported as array element type
		public SDL.AudioFilter filters[10];

I tried googling the error but didn't find much of use.

ERROR from glib(01): assertion 'self != NULL' failed

After building and running the current master on Linux, the terminal is spammed full of assertion failures.

...
[2020-04-11_23-17-57] ERROR from glib(01): engine_render_texture_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_render_texture_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_render_texture_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
[2020-04-11_23-17-57] ERROR from glib(01): engine_open_gl_renderer_open_gl_texture_resource_handle_get_handle: assertion 'self != NULL' failed
...

Suggestion: Option to disable timer

Would be great to play the game without worrying about the timer, and if there was an option to do so in settings to toggle it on or off.

Improve score readability

On a WQHD screen, the score in the middle of the table is not too easy to read despite there being enough space to increase its size. Maybe some outline would also improve readability.

Option to choose custom music

I think it would be nice having a way to play a custom music in background. No offense to anyone but I find the current one not very appropriate for focusing.

I couldn't find a way to add a different music therefore I decided to open this ticket. I would suggest an option in the "Audio Options" where the user could select the wanted music.

I know some open source programs have issues with royalties for formats like mp3, therefore the open format ogg could be used instead.

Use git subtree to include Engine repo

Since the Engine repo is an explicit dependency of this repo, it should be included in the repo as a git subtree (or perhaps a git submodule). If that's done, the Makefile can instead reference an Engine folder in the repo instead of relying on the user to manually clone the other repo and mandating that it's cloned in ../Engine. This would also make it easier to clean up because one would only have to delete this repo's folder instead of the folders for this repo and Engine.

Exhaustive Draw Score Issue

When you enter Exhaustive Draw, the program does not correctly give everyone that is in tenpai 1000 points, but it does seem to deduct the correct amount from players not in tenpai.

I'll attach a screenshot the next time I encounter the situation, I didn't expect an issue V_V

Windows 11, v0.2.1.1, installed with setup wizard.

Chow including a 5 prefers normal 5 over red five

As the title says, a chi i called made my hand lose value because in my hand i had a 5, a red 5 and a 6, and the person left of me discarded a 4. when i called chi i had no option to choose which 5 to use and so it defaulted to using the normal 5, forcing me to discard the red five since it was no longer useful. is this intentional?

Ability to pause the game

At the moment there is no easy way to pause the game (at the least I couldn't find it). Pressing 'esc' pop-ups the option menu, which I just realized doesn't put the game in pause. I suggest to put the game in pause while the menu is on, and if possible also to add a "quick pause button" which many media players and games use as pause button (space bar).

Problem trying to build

When following the instructions I get to build and enter "meson build -Dbuildtype=release" and get the error: "Neither directory contains a build file meson.build." What could be wrong?

Error: Could not connect to lobby

Hi there, I'm running v0.2.1.1 on Windows 10 and getting Error: Could not connect to lobby, is there anything I can do about it or are my hands tied? If I try to create my own server instead what name should I give to those that want to join it?

Building .app on Mac

I built the executable with...

brew install vala lcsfml sfml csfml libgee libffi git
# replace the value of libffi with your actual libffi
# find it like this
# brew ls libffi
export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.2.1/lib/pkgconfig/
git clone https://github.com/FluffyStuff/OpenRiichi.git
git clone https://github.com/FluffyStuff/Engine.git
cd OpenRiichi
make mac

... and it works fine, but how do I make an actual packaged application to give to my friends?

Easy way to install OpenRiichi?(Both windows and linux)

Hi, first of all thank you for the hard work @FluffyStuff. I would like to ask whether in the future you plan to provide easy to install packages for Windows and the major linux distros (or even better ask to have OpenRiichi added to the official repos). It would increase the userbase and attract players and contributors I think. Not everyone is able to use terminal. I will try on my Ubuntu and report any feedback/issue I have.

Possible memory leak

Having difficulties pinpointing exactly when/how this occurs, but I've found having the program open for multiple hours eventually leads to a full system lockup and having to hard reset. This is on Manjaro Linux, will test more to see if I can figure out more details

Feature Request: Learning Mode

Hi, I'd like to request a learning mode that does away with the timer so new players who all agree can take more time to figure out what yaku they may have.
Additionally learning mode could maybe have a rules dictionary with a legal yaku list, maybe you can select a yaku from here to watch which would make it appear to the player under/over their hand.

Display issues on my laptop

My laptop is still using windows 7 OS, as I open the latest release and after I create a game, I cannot see anything except for the timer and the buttons. I can click the position of the tiles to fold, but I cannot see my hand.
Like shown in the picture.
图片
And this is my OpenGL version.
图片

Cannot build on debian sid x64

┌─[phoe][phoetower][±][master ✓][/tmp/foo/OpenRiichi]
└─▪ make release
valac -o bin/OpenRiichi ../Engine/*.vala ../Engine/Audio/*.vala ../Engine/Files/*.vala ../Engine/Helper/*.vala ../Engine/Properties/*.vala ../Engine/Rendering/*.vala ../Engine/Rendering/OpenGLRenderer/*.vala ../Engine/Window/*.vala ../Engine/Window/Controls/*.vala source/*.vala source/Game/*.vala source/Game/Logic/*.vala source/Game/Rendering/*.vala source/Game/Rendering/Menu/*.vala source/GameServer/Bots/*.vala source/GameServer/GameState/*.vala source/GameServer/Server/*.vala source/MainMenu/*.vala source/MainMenu/Lobby/*.vala --thread --target-glib 2.32 --pkg gio-2.0 --pkg glew --pkg gee-0.8 --pkg gl --pkg SDL2_image --pkg sdl2 --pkg stb --pkg pangoft2 --pkg sfml-audio --pkg sfml-system --pkg zlib --pkg win32 -X -lcsfml-audio -X -lcsfml-system -X -Iinclude -X -lm --vapidir=vapi -X -w -X -DGLEW_NO_GLU -D LINUX
Command-line option `--thread` is deprecated and will be ignored
gee-0.8.vapi:15.3-15.26: warning: Creation method of abstract class cannot be public.
		public AbstractBidirList ();
		^^^^^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:21.3-21.31: warning: Creation method of abstract class cannot be public.
		public AbstractBidirSortedMap ();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:27.3-27.31: warning: Creation method of abstract class cannot be public.
		public AbstractBidirSortedSet ();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:33.3-33.27: warning: Creation method of abstract class cannot be public.
		public AbstractCollection ();
		^^^^^^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:46.3-46.21: warning: Creation method of abstract class cannot be public.
		public AbstractList ();
		^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:58.3-58.20: warning: Creation method of abstract class cannot be public.
		public AbstractMap ();
		^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:78.3-78.25: warning: Creation method of abstract class cannot be public.
		public AbstractMultiMap (Gee.Map<K,Gee.Collection<V>> storage_map);
		^^^^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:87.3-87.25: warning: Creation method of abstract class cannot be public.
		public AbstractMultiSet (Gee.Map<G,int> storage_map);
		^^^^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:99.3-99.22: warning: Creation method of abstract class cannot be public.
		public AbstractQueue ();
		^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:108.3-108.20: warning: Creation method of abstract class cannot be public.
		public AbstractSet ();
		^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:113.3-113.26: warning: Creation method of abstract class cannot be public.
		public AbstractSortedMap ();
		^^^^^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:122.3-122.26: warning: Creation method of abstract class cannot be public.
		public AbstractSortedSet ();
		^^^^^^^^^^^^^^^^^^^^^^^^
gee-0.8.vapi:657.4-657.15: warning: Creation method of abstract class cannot be public.
			public Entry ();
			^^^^^^^^^^^^
../Engine/Rendering/RenderObject3D.vala:3.5-3.25: error: Creation method of abstract class cannot be public.
    public RenderObject3D(RenderModel model, RenderMaterial material)
    ^^^^^^^^^^^^^^^^^^^^^
../Engine/Rendering/RenderTarget.vala:36.5-36.23: error: Creation method of abstract class cannot be public.
    public RenderTarget(IWindowTarget window)
    ^^^^^^^^^^^^^^^^^^^
../Engine/Window/RenderWindow.vala:11.5-11.23: error: Creation method of abstract class cannot be public.
    public RenderWindow(IWindowTarget window, RenderTarget renderer)
    ^^^^^^^^^^^^^^^^^^^
../Engine/Window/Controls/ListControl.vala:13.5-13.22: error: Creation method of abstract class cannot be public.
    public ListControl(bool row_selectable)
    ^^^^^^^^^^^^^^^^^^
source/Game/Logic/GameLog.vala:127.5-127.22: error: Creation method of abstract class cannot be public.
    public GameLogLine(TimeStamp timestamp)
    ^^^^^^^^^^^^^^^^^^
source/Game/Rendering/RenderAction.vala:5.5-5.23: error: Creation method of abstract class cannot be public.
    public RenderAction(float time)
    ^^^^^^^^^^^^^^^^^^^
source/GameServer/Server/ServerPlayer.vala:5.9-5.27: error: Creation method of abstract class cannot be public.
        public ServerPlayer(string name, bool bot)
        ^^^^^^^^^^^^^^^^^^^
source/MainMenu/OptionsMenuView.vala:120.5-120.29: error: Creation method of abstract class cannot be public.
    public SubOptionsMenuView(string name, Options options, string apply_text, string back_text, int padding)
    ^^^^^^^^^^^^^^^^^^^^^^^^^
Compilation failed: 8 error(s), 13 warning(s)
make: *** [Makefile:63: release] Błąd 1

Msys2 can't find libgl@

julia@DESKTOP-6FNMMLT MINGW64 ~/OpenRiichi $ ninja -C build ninja: Entering directory build [1/1] Linking target OpenRiichi.exe FAILED: OpenRiichi.exe cc @OpenRiichi.exe.rsp cc: error: libgl@: No such file or directory ninja: build stopped: subcommand failed.

Add ability to change or turn off turn timer.

Sorry to be a pain in the rear but I do free online teaching sessions on getting to grips with the basics of mahjong and would love to have an alternative to tabletop simulator for teaching because that gets too messy, too fast and a hanchan takes a minimum of 2 hours. Being able to remove or extend it would be a nice little touch in terms of accessibility of mahjong as a whole, not just this version

Cheers for your consideration [and sorry for potentially increasing your never ending to-do list]

Classic Mahjong rules?

I don't know if this is beyond the scope of OpenRiichi, but given the scarcity of such project I try anyway. It would be nice being able to play with the Chinese rules as classic Mahjong rather than Japanese. Is it going to happen anytime?

Compile

I can't compile in windows can you help me

Smarter board scaling

It appears the game attempts to scale for a 16:9 resolution, although on the left and right there is some space that is unused. When the window is resized towards a 4:3 aspect ratio, the table shrinks even if it could have fit onto the new window size as well, just so it can maintain the "borders" on the side.

Don't count up numbers slowly

When points are distrbuted after a round, there is this gimmicky number count-down and add-up that takes quite a bit of time and also has some annoying sound effects that I'd prefer not to hear. I'd like to disable these (or remove them all together).

Game breaks COMPLETELY for some reason.

after a multiplayer match ended with 2 players and two simplebots in a south round, the game restarted early, and all hell broke loose.

here's 5 video fragments i took of the event (i didn't really want to edit them):

List of everything that went wrong:

  • Game restarted before timer was over
  • Tiles showed as a ? until discarded
  • Human Players could not choose what to discard
  • Bots completely lost track of what to do
  • Players were able to hold more than 14 tiles in hand at a time
  • Discards happened from anywhere, really. Other players' hands, other players' discard piles, the dead wall, etc.
  • Drawn tiles had the same issues, even drawing tiles out of order causing floating tiles to show.
  • Tiles were drawn and discarded more than one at a time, sometimes merging into one tile
  • (minor issue) because hand sizes were big, each players' hands had clipping textures
  • Human players were able to call riichi, kan or continue on random tiles at strange intervals, but it wouldn't actually give them any tiles.
  • Since tiles were being drawn out of discard piles, the location of the next discarded tile was wrong, therefore creating gaps in the discard pile.
  • the round ended in a draw, then restarted in the same scenario.

This is the first time it's ever happened to us, and it was honestly hilarious, but we have NO idea what could cause this

Status of projec as October 2018?

Hi I follow OpenRiichi closely as I am interested in mahjong and I feel OR is the best FOSS of its kind (and also compared to non-FOSS it is really good). The last commit was months ago and was wondering what's the status of the project. What are the short-term plans for OpenRiichi? Hope this project is not dead.
Best Regards.

Cannot run in Mac OS X

❯ ./RiichiMahjong
OPEN_GL_SHADER_SHADER_TYPE_VERTEX_SHADER shader compilation failure!
ERROR: 0:24: Invalid storage qualifiers 'in' in global variable context
ERROR: 0:25: Invalid storage qualifiers 'in' in global variable context
ERROR: 0:26: Invalid storage qualifiers 'in' in global variable context
ERROR: 0:28: Invalid storage qualifiers 'out varying' in global variable context
ERROR: 0:29: Invalid storage qualifiers 'out varying' in global variable context
ERROR: 0:30: Invalid storage qualifiers 'out varying' in global variable context
ERROR: 0:34: Use of undeclared identifier 'position'
ERROR: 0:35: Use of undeclared identifier 'mod_pos'
ERROR: 0:36: Use of undeclared identifier 'normal'
ERROR: 0:44: Use of undeclared identifier 'mod_pos'
ERROR: 0:54: Use of undeclared identifier 'light_normal'
ERROR: 0:55: Use of undeclared identifier 'light_normal'
ERROR: 0:56: Use of undeclared identifier 'frag_camera_normal'
ERROR: 0:58: Use of undeclared identifier 'frag_normal'
ERROR: 0:58: Use of undeclared identifier 'ln'
ERROR: 0:60: Use of undeclared identifier 'd'
ERROR: 0:61: Use of undeclared identifier 'd'
ERROR: 0:61: Use of undeclared identifier 'lnlen'
ERROR: 0:62: Use of undeclared identifier 'd'
ERROR: 0:62: Use of undeclared identifier 'lnlen'
ERROR: 0:68: Use of undeclared identifier 'ln'
ERROR: 0:68: Use of undeclared identifier 'frag_normal'
ERROR: 0:70: Use of undeclared identifier 'cm'
ERROR: 0:70: Use of undeclared identifier 'ln'
ERROR: 0:70: Use of undeclared identifier 'frag_normal'
ERROR: 0:72: Use of undeclared identifier 's'
ERROR: 0:73: Use of undeclared identifier 's'
ERROR: 0:74: Use of undeclared identifier 's'
ERROR: 0:75: Use of undeclared identifier 's'
ERROR: 0:79: Use of undeclared identifier 'lnlen'
ERROR: 0:80: Use of undeclared identifier 'lnlen'
ERROR: 0:89: Use of undeclared identifier 'frag_camera_normal'
ERROR: 0:90: Use of undeclared identifier 'light_color_original'
ERROR: 0:90: Use of undeclared identifier 'p'
ERROR: 0:91: Use of undeclared identifier 'light_color_additive'
ERROR: 0:91: Use of undeclared identifier 'p'
ERROR: 0:93: Use of undeclared identifier 'frag_texture_coord'
ERROR: 0:93: Use of undeclared identifier 'texture_coord'
ERROR: 0:94: Use of undeclared identifier 'position'

graphical glitch

Setup:
We have 3 pc's at home where 2 of them show this graphical glitch in the game
specs of one of the pc with the issue:
Intel i7-3770k
radeon RX580 (radeon software version 20.4.2)
Windows 10 pro 1903
Shows glitch as seen in attached gif

the only diffrence is that the working pc has a nvidia gfx card

I tried the following to see if i could fix the issue:
tried all settings the game has to offer including fullscreen
updated drivers
made sure radeon settings werent messing with the game
tried windows compatibility mode.

OpenRiichi3

Add a "variant" tile set for western audience

Forword: I hope I am not annoying devs by openng my third ticket in a couple of hours, I just started playing OpenRiichi and wanted to give my feedbacks as user.

Second foreword: wth my suggestion I don't want to go against tradition or offend the purists of the traditional game.

I opened this ticket to propose to add the option for the user to chose an alternate tile set which displays Arabic numbers on the corner of the tiles, what I am talking about is: https://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Ordinary_mahjong.jpg/330px-Ordinary_mahjong.jpg.

It would really help players who don't understand Chinese characters. I have no issue looking at bamboos but like the majority of people who don't speak Chinese, I really struggle with the tiles with Hanzi.

True I could learn the symbols and perhaps someday I will, but I know that in North America is common practice playing with the variant of tiles I am talking about, hence my humble request.

The option could be chosen by the user and have traditional tiles by default.

Best Regards,

Modal actions aren't intuitive

I've just played a round with 2 others and both of them had issues with the riichi and chi buttons seeming unresponsive when most likely they had to make a choice for building a meld or discarding a tile. However, the UI didn't do a good job in reflecting that.

I know from other implementations (mobile, web) that they highlight the tiles that can be thrown out and for chi they provide the exact options to build a meld that to choose from. I believe this to be much better UX.

buliding issue on Mac m1 (arm64) processor

⋊> ~/c/OpenRiichi on master ◦ ninja -C build                                                                                           08:45:44
ninja: Entering directory `build'
[1/1] Linking target OpenRiichi
FAILED: OpenRiichi
cc  -o OpenRiichi OpenRiichi.p/meson-generated_source_main.c.o OpenRiichi.p/meson-generated_source_Environment.c.o OpenRiichi.p/meson-generated_source_Game_GameController.c.o OpenRiichi.p/meson-generated_source_Game_Logic_AnimationTimings.c.o OpenRiichi.p/meson-generated_source_Game_Logic_ClientAction.c.o OpenRiichi.p/meson-generated_source_Game_Logic_ClientMessage.c.o OpenRiichi.p/meson-generated_source_Game_Logic_ClientRoundState.c.o OpenRiichi.p/meson-generated_source_Game_Logic_GameLog.c.o OpenRiichi.p/meson-generated_source_Game_Logic_GamePlayer.c.o OpenRiichi.p/meson-generated_source_Game_Logic_GameStartInfo.c.o OpenRiichi.p/meson-generated_source_Game_Logic_GameState.c.o OpenRiichi.p/meson-generated_source_Game_Logic_IGameConnection.c.o OpenRiichi.p/meson-generated_source_Game_Logic_LobbyMessages.c.o OpenRiichi.p/meson-generated_source_Game_Logic_RoundLog.c.o OpenRiichi.p/meson-generated_source_Game_Logic_RoundState.c.o OpenRiichi.p/meson-generated_source_Game_Logic_ServerAction.c.o OpenRiichi.p/meson-generated_source_Game_Logic_ServerMessage.c.o OpenRiichi.p/meson-generated_source_Game_Logic_Tile.c.o OpenRiichi.p/meson-generated_source_Game_Logic_TileRules.c.o OpenRiichi.p/meson-generated_source_Game_Logic_TimeStamp.c.o OpenRiichi.p/meson-generated_source_Game_Logic_VersionInfo.c.o OpenRiichi.p/meson-generated_source_Game_MusicPlayer.c.o OpenRiichi.p/meson-generated_source_Game_Options.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_GameAnimationTimings.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_GameRenderView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_GameScene.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_IGameRenderer.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_GameEscapeMenuView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_GameMenuButton.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_GameMenuView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_ScoringDoraView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_ScoringHandView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_ScoringInnerView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_ScoringPlayerElement.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_ScoringPointsView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_ScoringStickView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_Menu_ScoringView.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderAction.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderCalls.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderHand.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderPlayer.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderPond.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderStick.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderTable.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderTile.c.o OpenRiichi.p/meson-generated_source_Game_Rendering_RenderWall.c.o OpenRiichi.p/meson-generated_source_Game_ServerSettings.c.o OpenRiichi.p/meson-generated_source_GameServer_Bots_Bot.c.o OpenRiichi.p/meson-generated_source_GameServer_Bots_BotConnection.c.o OpenRiichi.p/meson-generated_source_GameServer_Bots_NullBot.c.o OpenRiichi.p/meson-generated_source_GameServer_Bots_SimpleBot.c.o OpenRiichi.p/meson-generated_source_GameServer_GameState_ServerRoundState.c.o OpenRiichi.p/meson-generated_source_GameServer_GameState_ServerRoundStatePlayer.c.o OpenRiichi.p/meson-generated_source_GameServer_GameState_ServerRoundStateValidator.c.o OpenRiichi.p/meson-generated_source_GameServer_Server_Server.c.o OpenRiichi.p/meson-generated_source_GameServer_Server_ServerController.c.o OpenRiichi.p/meson-generated_source_GameServer_Server_ServerGameRound.c.o OpenRiichi.p/meson-generated_source_GameServer_Server_ServerMenu.c.o OpenRiichi.p/meson-generated_source_GameServer_Server_ServerNetworking.c.o OpenRiichi.p/meson-generated_source_GameServer_Server_ServerPlayer.c.o OpenRiichi.p/meson-generated_source_MainMenu_AboutMenuView.c.o OpenRiichi.p/meson-generated_source_MainMenu_CreateServerView.c.o OpenRiichi.p/meson-generated_source_MainMenu_InformationMenuView.c.o OpenRiichi.p/meson-generated_source_MainMenu_JoinMenuView.c.o OpenRiichi.p/meson-generated_source_MainMenu_Lobby_LobbyConnection.c.o OpenRiichi.p/meson-generated_source_MainMenu_Lobby_LobbyConnectionView.c.o OpenRiichi.p/meson-generated_source_MainMenu_Lobby_LobbyGameListControl.c.o OpenRiichi.p/meson-generated_source_MainMenu_Lobby_LobbyInformationListControl.c.o OpenRiichi.p/meson-generated_source_MainMenu_Lobby_LobbyUserListControl.c.o OpenRiichi.p/meson-generated_source_MainMenu_Lobby_LobbyView.c.o OpenRiichi.p/meson-generated_source_MainMenu_MainMenuBackgroundView.c.o OpenRiichi.p/meson-generated_source_MainMenu_MainMenuView.c.o OpenRiichi.p/meson-generated_source_MainMenu_MenuSubView.c.o OpenRiichi.p/meson-generated_source_MainMenu_MultiplayerMenuView.c.o OpenRiichi.p/meson-generated_source_MainMenu_OptionItemControl.c.o OpenRiichi.p/meson-generated_source_MainMenu_OptionsMenuView.c.o OpenRiichi.p/meson-generated_source_MainMenu_SelectGameLogMenuView.c.o OpenRiichi.p/meson-generated_source_MainMenu_ServerMenuView.c.o OpenRiichi.p/meson-generated_source_MainMenu_ServerPlayerFieldView.c.o OpenRiichi.p/meson-generated_source_MainMenu_ServerSettingsView.c.o OpenRiichi.p/meson-generated_source_MainMenu_SingleplayerMenuView.c.o OpenRiichi.p/meson-generated_source_MainWindow.c.o OpenRiichi.p/meson-generated_source_Tests_HandTests.c.o OpenRiichi.p/meson-generated_Engine_Engine.c.o OpenRiichi.p/meson-generated_Engine_EngineLog.c.o OpenRiichi.p/meson-generated_Engine_Audio_AudioPlayer.c.o OpenRiichi.p/meson-generated_Engine_Files_FileLoader.c.o OpenRiichi.p/meson-generated_Engine_Files_ObjParser.c.o OpenRiichi.p/meson-generated_Engine_Helper_Calculations.c.o OpenRiichi.p/meson-generated_Engine_Helper_DeltaTimers.c.o OpenRiichi.p/meson-generated_Engine_Helper_EngineMutex.c.o OpenRiichi.p/meson-generated_Engine_Helper_Helper.c.o OpenRiichi.p/meson-generated_Engine_Helper_ImageLoader.c.o OpenRiichi.p/meson-generated_Engine_Helper_ImageLoadWrap.c.o OpenRiichi.p/meson-generated_Engine_Helper_Keys.c.o OpenRiichi.p/meson-generated_Engine_Helper_LabelLoader.c.o OpenRiichi.p/meson-generated_Engine_Helper_Networking.c.o OpenRiichi.p/meson-generated_Engine_Helper_RandomClass.c.o OpenRiichi.p/meson-generated_Engine_Helper_Threading.c.o OpenRiichi.p/meson-generated_Engine_Helper_Timers.c.o OpenRiichi.p/meson-generated_Engine_Properties_Animation.c.o OpenRiichi.p/meson-generated_Engine_Properties_Color.c.o OpenRiichi.p/meson-generated_Engine_Properties_Curve.c.o OpenRiichi.p/meson-generated_Engine_Properties_DeltaArgs.c.o OpenRiichi.p/meson-generated_Engine_Properties_Mat3.c.o OpenRiichi.p/meson-generated_Engine_Properties_Mat4.c.o OpenRiichi.p/meson-generated_Engine_Properties_Orientation.c.o OpenRiichi.p/meson-generated_Engine_Properties_Path.c.o OpenRiichi.p/meson-generated_Engine_Properties_Quat.c.o OpenRiichi.p/meson-generated_Engine_Properties_Ray.c.o OpenRiichi.p/meson-generated_Engine_Properties_Rectangle.c.o OpenRiichi.p/meson-generated_Engine_Properties_ScreenTypeEnum.c.o OpenRiichi.p/meson-generated_Engine_Properties_Size2.c.o OpenRiichi.p/meson-generated_Engine_Properties_Size2i.c.o OpenRiichi.p/meson-generated_Engine_Properties_Transform.c.o OpenRiichi.p/meson-generated_Engine_Properties_Vec2.c.o OpenRiichi.p/meson-generated_Engine_Properties_Vec2i.c.o OpenRiichi.p/meson-generated_Engine_Properties_Vec3.c.o OpenRiichi.p/meson-generated_Engine_Properties_Vec4.c.o OpenRiichi.p/meson-generated_Engine_Rendering_BasicGeometry.c.o OpenRiichi.p/meson-generated_Engine_Rendering_Camera.c.o OpenRiichi.p/meson-generated_Engine_Rendering_DebugInfo.c.o OpenRiichi.p/meson-generated_Engine_Rendering_DebugView.c.o OpenRiichi.p/meson-generated_Engine_Rendering_IRenderTarget.c.o OpenRiichi.p/meson-generated_Engine_Rendering_LightSource.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_OpenGLFrameBuffer.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_OpenGLFunctions.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_OpenGLRenderBuffer.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_OpenGLRenderer.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_Shaders_OpenGL2DShaderBuilder.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_Shaders_OpenGLShader.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_Shaders_OpenGLShaderBuilder.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_Shaders_OpenGLShaderProgram2D.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_Shaders_OpenGLShaderProgram3D.c.o OpenRiichi.p/meson-generated_Engine_Rendering_OpenGLRenderer_Shaders_OpenGLStandardShaderBuilder.c.o OpenRiichi.p/meson-generated_Engine_Rendering_RenderGeometry3D.c.o OpenRiichi.p/meson-generated_Engine_Rendering_RenderObject2D.c.o OpenRiichi.p/meson-generated_Engine_Rendering_RenderObject3D.c.o OpenRiichi.p/meson-generated_Engine_Rendering_RenderScene2D.c.o OpenRiichi.p/meson-generated_Engine_Rendering_RenderScene3D.c.o OpenRiichi.p/meson-generated_Engine_Rendering_RenderState.c.o OpenRiichi.p/meson-generated_Engine_Rendering_RenderTarget.c.o OpenRiichi.p/meson-generated_Engine_Rendering_Resources_IResourceHandle.c.o OpenRiichi.p/meson-generated_Engine_Rendering_Resources_RenderMaterial.c.o OpenRiichi.p/meson-generated_Engine_Rendering_Resources_RenderModel.c.o OpenRiichi.p/meson-generated_Engine_Rendering_Resources_RenderTexture.c.o OpenRiichi.p/meson-generated_Engine_Rendering_Resources_ResourceStore.c.o OpenRiichi.p/meson-generated_Engine_Rendering_World_World.c.o OpenRiichi.p/meson-generated_Engine_Rendering_World_WorldCamera.c.o OpenRiichi.p/meson-generated_Engine_Rendering_World_WorldLabel.c.o OpenRiichi.p/meson-generated_Engine_Rendering_World_WorldLight.c.o OpenRiichi.p/meson-generated_Engine_Rendering_World_WorldObject.c.o OpenRiichi.p/meson-generated_Engine_Rendering_World_WorldObjectAnimation.c.o OpenRiichi.p/meson-generated_Engine_Rendering_World_WorldObjectTransformable.c.o OpenRiichi.p/meson-generated_Engine_Window_Container.c.o OpenRiichi.p/meson-generated_Engine_Window_Control.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_ImageControl.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_LabelControl.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_LineControl.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_ListControl.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_MenuButton.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_MenuTextButton.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_RectangleControl.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_ScrollBarControl.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_SizingControl.c.o OpenRiichi.p/meson-generated_Engine_Window_Controls_TextInputControl.c.o OpenRiichi.p/meson-generated_Engine_Window_IWindowTarget.c.o OpenRiichi.p/meson-generated_Engine_Window_MainView.c.o OpenRiichi.p/meson-generated_Engine_Window_RenderWindow.c.o OpenRiichi.p/meson-generated_Engine_Window_SDLWindowTarget.c.o OpenRiichi.p/meson-generated_Engine_Window_View2D.c.o OpenRiichi.p/meson-generated_Engine_Window_View3D.c.o -I/opt/homebrew/opt/openjdk/include -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -Wl,-rpath,/opt/local/lib /opt/local/lib/libglib-2.0.dylib /opt/local/lib/libintl.dylib /opt/local/lib/libgobject-2.0.dylib /opt/local/lib/libgio-2.0.dylib /opt/local/lib/libgee-0.8.dylib /opt/local/lib/libgtk-3.dylib /opt/local/lib/libgdk-3.dylib /opt/local/lib/libpangocairo-1.0.dylib /opt/local/lib/libpango-1.0.dylib /opt/local/lib/libharfbuzz.dylib /opt/local/lib/libatk-1.0.dylib /opt/local/lib/libcairo-gobject.dylib /opt/local/lib/libcairo.dylib /opt/local/lib/libgdk_pixbuf-2.0.dylib /opt/local/lib/libGLEW.dylib -framework OpenGL /opt/local/lib/libSDL2_image.dylib /opt/local/lib/libSDL2.dylib /opt/local/lib/libSDL2_mixer.dylib /opt/local/lib/libpangoft2-1.0.dylib /opt/local/lib/libfontconfig.dylib /opt/local/lib/libfreetype.dylib /opt/local/lib/libz.dylib -lm /opt/local/lib/libGL.dylib
Undefined symbols for architecture arm64:
  "_CFBundleCopyResourcesDirectoryURL", referenced from:
      _environment_init in meson-generated_source_Environment.c.o
  "_CFBundleGetMainBundle", referenced from:
      _environment_init in meson-generated_source_Environment.c.o
  "_CFRelease", referenced from:
      _environment_init in meson-generated_source_Environment.c.o
  "_CFURLGetFileSystemRepresentation", referenced from:
      _environment_init in meson-generated_source_Environment.c.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Let OpenRiichi remember the size of the screen

At the moment you can just chose windowed mode or full screen. If you select windowed you can also resize the windo by dragging the borders, however next time you start OpenRiichi it goes back to the default size.

It is kinda annoying because everyone has different screens and preferences (for instance I don't like to play in full screen because I like seeing what's going on outside the game).

I think this feature could be implemented either let OpenRiichi remember the size of the window when dragged or use in the "video options" a pre-set of common formats as "<1440x1080>" so that the user can chose the one he prefers. Since I am not a coder I have no idea which one of the two is more doable :)

Next branch does not build (on latest dependencies)

Trying to test the next branch, I run into the following error:

make -C ../Engine linuxRelease
make[1]: Entering directory '/build/open-riichi-git/src/Engine'
valac --library=libengine --vapi bin/libengine.vapi -X -Ofast -X -shared -X -fPIC -H bin/libengine.h -o bin/libengine.so *.vala Audio/*.vala Files/*.vala Helper/*.vala Properties/*.vala Rendering/*.vala Rendering/OpenGLRenderer/*.vala Rendering/OpenGLRenderer/Shaders/*.vala Rendering/Resources/*.vala Rendering/World/*.vala Window/*.vala Window/Controls/*.vala --thread --target-glib 2.32 --pkg gio-2.0 --pkg glew --pkg gee-0.8 --pkg gl --pkg SDL2_image --pkg sdl2 --pkg stb --pkg pangoft2 --pkg sfml-audio --pkg sfml-system --pkg zlib -X -Iinclude -X -lcsfml-audio -X -lcsfml-system -X -lm --vapidir=vapi -X -w -X -DGLEW_NO_GLU -D LINUX
sdl2.vapi:1564.33-1564.36: error: Delegates with target are not supported as array element type
		public SDL.AudioFilter filters[10];
		                              ^^^^
Command-line option `--thread` is deprecated and will be ignored
Compilation failed: 1 error(s), 0 warning(s)
make[1]: *** [Makefile:56: linuxRelease] Error 1
make[1]: Leaving directory '/build/open-riichi-git/src/Engine'
make: *** [Makefile:41: engineLinuxRelease] Error 2

Since I know nothing about vala, I though it would be best to just report this for now.

Remember name of server

Every time I want to play against computer I need to add the name of the server. Since I usually play alone I use the same name all the times for the server. I think it would make sense to save last name used and if player wants to change it they can do so next time they want to play.

I am on OpenRiichi 0.2.1.1 (which by the way I run through WINE and works fine!).

fu calculation is incorrect for triplets/kans

Line 1343 of Game/Logic/TileRules.vala in calculate_fu() checks if the triplet/kan is dragon or seat/round wind, but that's what you're supposed to do for the pair. Triplet and kan fu values are affected by being terminal/honor tiles or not.

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.