Stick Adventures Online version 1.2.2 has been released!
- Unused parts of the GUI have been removed.
- Pressing the enter key twice while on the login screen should no longer disconnect you.
- The random disconnect bug should now be fixed.
- The repeating character bug while typing should be fixed.
- Creating a character with a symbol in it's name should no longer kick you.
From the Programmer
Written by Invisible
This week I decided to fix some glitches in SAO that have been bugging the community for a while. One of them was quite difficult to figure out and was causing players to be disconnected at random. After many tests, I finally figured out what the problem was: Threading and non-blocking sockets do not mix well unless you handle WSAEWOULDBLOCK from each Winsock function including send(). Due to various reasons, send() would sometimes return a non-fatal error such as WSAEWOULDBLOCK which just means that the packet needs to be sent again at a later time. Unfortunately, my networking code was not doing so.
Due to the bug fixing I have been doing on SAO, I have not had a whole lot of time to work on that new input system. However, I think I have the design finished. Callbacks can be registered with the input core for the events KEY_DOWN, KEY_UP, KEY_REPEAT, CHAR_ENTERED, MOUSE_MOVE, MOUSE_BUTTON_DOWN and MOUSE_BUTTON_UP. I will expand this list of events when I require input from a different device, such as a joystick or gamepad. When one of these events occurs, the event is triggered and all registered callbacks for that event are called. The CHAR_ENTERED event is triggered when a specific character is entered, rather than a key pressed/released. The KEY_REPEAT event will handle repeating a key press (the exact timing of each press is figured out by the input core and depends on the API it uses as well as the operating system). A callback registered to handle a KEY_REPEAT will most likely want to copy the code used in KEY_DOWN, however the two events are made separate so that if key repeating is not required, it doesn't have to be handled. The callback is able to check the current state of all the keys/mouse buttons/mouse position/etc, not just the one it was created to handle.
Written by GreyKnight
The bank is finally finished! The only light sources are the two braziers (unless you count the door), so I gave everything a slight orange tint.
This is the end of the Artist's Easel for now. If I am working on a large background or something similar, I might start this section up again. However, it is getting difficult to show what I am working on without giving too much away.
Sorry, there isn't a community spotlight article this week.