diff --git a/client/scenes/in_world.cpp b/client/scenes/in_world.cpp index 2ad41a5..1c25bf6 100644 --- a/client/scenes/in_world.cpp +++ b/client/scenes/in_world.cpp @@ -35,21 +35,21 @@ InWorld::InWorld(ConfigUtility* const argConfig, UDPNetworkUtility* const argNet clientIndex(*argClientIndex) { //setup the utility objects - image.LoadSurface(config["dir.interface"] + "button_menu.bmp"); - image.SetClipH(image.GetClipH()/3); + buttonImage.LoadSurface(config["dir.interface"] + "button_menu.bmp"); + buttonImage.SetClipH(buttonImage.GetClipH()/3); font.LoadSurface(config["dir.fonts"] + "pk_white_8.bmp"); //pass the utility objects - disconnectButton.SetImage(&image); + disconnectButton.SetImage(&buttonImage); disconnectButton.SetFont(&font); - shutDownButton.SetImage(&image); + shutDownButton.SetImage(&buttonImage); shutDownButton.SetFont(&font); //set the button positions disconnectButton.SetX(50); - disconnectButton.SetY(50 + image.GetClipH() * 0); + disconnectButton.SetY(50 + buttonImage.GetClipH() * 0); shutDownButton.SetX(50); - shutDownButton.SetY(50 + image.GetClipH() * 1); + shutDownButton.SetY(50 + buttonImage.GetClipH() * 1); //set the button texts disconnectButton.SetText("Disconnect"); diff --git a/client/scenes/in_world.hpp b/client/scenes/in_world.hpp index b3b74f9..7fb14c4 100644 --- a/client/scenes/in_world.hpp +++ b/client/scenes/in_world.hpp @@ -22,17 +22,29 @@ #ifndef INWORLD_HPP_ #define INWORLD_HPP_ -#include "base_scene.hpp" +//maps +#include "map_generator.hpp" +#include "map_file_format.hpp" +#include "region_pager.hpp" -#include "config_utility.hpp" +//networking #include "udp_network_utility.hpp" #include "network_packet.hpp" #include "serial.hpp" + +//graphics #include "image.hpp" #include "raster_font.hpp" #include "button.hpp" + +//common +#include "config_utility.hpp" + +//client +#include "base_scene.hpp" #include "player_character.hpp" +//STL #include class InWorld : public BaseScene { @@ -66,16 +78,26 @@ protected: void RequestDisconnect(); void RequestShutDown(); - //global + //globals ConfigUtility& config; UDPNetworkUtility& network; int& clientIndex; - //members - Image image; + //graphics + Image buttonImage; RasterFont font; + + //map + RegionPager mapPager; + + //UI Button disconnectButton; Button shutDownButton; + struct { + int x = 0, y = 0; + } camera; + + //game std::map playerCharacters; PlayerCharacter* localCharacter = nullptr; int playerIndex = -1; diff --git a/common/network/network_packet.hpp b/common/network/network_packet.hpp index 8b5ea51..aed56d8 100644 --- a/common/network/network_packet.hpp +++ b/common/network/network_packet.hpp @@ -116,6 +116,6 @@ union NetworkPacket { #pragma pack(pop) -#define PACKET_BUFFER_SIZE std::max(sizeof(NetworkPacket), REGION_WIDTH * REGION_HEIGHT * REGION_DEPTH * sizeof(Region::type_t) + sizeof(NetworkPacket::Metadata)) +#define PACKET_BUFFER_SIZE std::max(sizeof(NetworkPacket), REGION_WIDTH * REGION_HEIGHT * REGION_DEPTH * sizeof(Region::type_t) + sizeof(int) * 2 + sizeof(NetworkPacket::Metadata)) #endif diff --git a/common/network/serial.cpp b/common/network/serial.cpp index bb2cf1a..de97b46 100644 --- a/common/network/serial.cpp +++ b/common/network/serial.cpp @@ -81,7 +81,15 @@ void serializeRegion(NetworkPacket* packet, char* buffer) { memcpy(buffer, &packet->meta.type, sizeof(NetworkPacket::Type)); buffer += sizeof(NetworkPacket::Type); - //TODO + //TODO: incomplete +/* for (register int i = 0; i < packet->mapInfo.region->GetWidth(); i++) { + for (register int j = 0; j < packet->mapInfo.region->GetHeight(); j++) { + for (register int k = 0; k < packet->mapInfo.region->GetDepth(); k++) { + memcpy(buffer, &packet->mapInfo.region->GetTile(i, j, k), sizeof(Region::type_t)); + buffer += sizeof(Region::type_t); + } + } + }*/ } //-------------------------