Compare commits

..

18 Commits

Author SHA1 Message Date
Claudel-D-Roy
889884490b push avant merge 2023-10-27 13:56:48 -04:00
MarcEricMartel
bd817f9f7d Merge branch 'sqc-14_classe_remoteplayer' of https://github.com/CegepSTH/SQCSim2023 into sqc-14_classe_remoteplayer 2023-10-27 13:55:25 -04:00
MarcEricMartel
57d60e02a7 getId() 2023-10-27 13:55:15 -04:00
Claudel-D-Roy
ae201846b1 push de correction 2023-10-27 13:54:37 -04:00
Claudel-D-Roy
67a49a4cad push de remote player 2023-10-23 15:35:31 -04:00
Claudel-D-Roy
d7e55c8446 Début de la classe remoteplayer.cpp, à vérifier 2023-10-15 16:23:43 -04:00
MarcEricMartel
183c5f186a Architecture générale 2023-10-03 12:43:54 -04:00
MarcEricMartel
54c25e6f78 Merge pull request #13 from CegepSTH/thehell_affichageMESS
SQC-8_Messagerie
2023-10-02 16:37:02 -04:00
Jonathan Trottier
bf164af23b changement de la grosseur du texte
les touches K et L pour faire afficher du texte
2023-10-02 16:27:41 -04:00
Claudel-D-Roy
0d948e3a28 Merge branch 'master' of https://github.com/CegepSTH/SQCSim2023 2023-10-02 16:27:26 -04:00
Claudel-D-Roy
b97890fff3 BrasDuJoueur 2023-10-02 16:27:21 -04:00
MarcEricMartel
432b8545a7 Merge branch 'master' into affichage_des_messages 2023-10-02 16:14:22 -04:00
Jonathan Trottier
54e2f32aba comments 2023-10-02 15:58:08 -04:00
Jonathan Trottier
90fdc8ed1b deux méthodes pour afficher message systeme et notification de kill 2023-10-02 15:55:45 -04:00
Frederic Leger
47906776c8 Merge pull request #10 from CegepSTH/sqc_51-fin
Corrections fichiers pour avoir la version x86 du client fonctionnelle
2023-10-02 15:52:28 -04:00
Claudel-D-Roy
fa9f0a3a8a Merge branch 'master' of https://github.com/CegepSTH/SQCSim2023 2023-10-01 13:59:07 -04:00
Claudel-D-Roy
43f3ce1428 Bouton pour menu 2023-10-01 13:58:59 -04:00
MarcEricMartel
8b3baa9063 Corrections fichiers pour avoir la version x86 fonctionnelle 2023-09-30 18:33:23 -04:00
721 changed files with 120818 additions and 174 deletions

7
.gitignore vendored
View File

@@ -373,8 +373,5 @@ FodyWeavers.xsd
/x64/Release/SQCSim2023.exe
/x64/Debug/SQCSim2023.exe
/x64/Debug/SQCSim2021.pdb
/SQCSim-srv/cmake/*
!/SQCSim-srv/cmake/CMakeLists.txt
/SQCSim2021/cmake/*
!/SQCSim2021/cmake/CMakeLists.txt
/SQCSim2021/SQCSim-client
SQCSim2021/SQCSim2021.vcxproj.filters
SQCSim2021/SQCSim2021.vcxproj

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -22,7 +22,7 @@
#define FRAMES_DELETE_CHUNKS 1
#define THREADS_GENERATE_CHUNKS 8
#define THREADS_UPDATE_CHUNKS 3
#define THREADS_UPDATE_CHUNKS 6
#define THREADS_DELETE_CHUNKS 3
#define VIEW_DISTANCE 512 // Si les chunks arr<72>tent de s'afficher pendant une game et qu'il y a un access violation quand tu quitte, il faut augmenter ce chiffre.
@@ -53,7 +53,6 @@ typedef uint64_t Timestamp;
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <cstring>
#define SOCKET int
#define INVALID_SOCKET -1

View File

@@ -33,7 +33,11 @@ namespace netprot {
bool jumping,
shooting,
hit,
powerup;
powerup,
dead,
still,
jumpshot,
running;
};
struct Input { // cli -> srv UDP ~frame

View File

@@ -5,9 +5,11 @@ Player::Player(const Vector3f& position, float rotX, float rotY) : m_position(po
m_velocity = Vector3f(0, 0, 0);
m_airborne = true;
m_hp = 0.75f; //TODO: Remettre <20> 1.0f
m_username = "Zelda Bee-Bop";
m_username = "Zelda Bee-Bop56";
}
Player::~Player() {}
void Player::TurnLeftRight(float value) {
m_rotY += value;
if (m_rotY > 360) m_rotY = 0;
@@ -206,3 +208,9 @@ void Player::Teleport(int& x, int& z) {
m_position.x -= x * CHUNK_SIZE_X;
m_position.z -= z * CHUNK_SIZE_Z;
}
uint64_t Player::getId() const { return id; }
Vector3f Player::InterpolatePosition(const Vector3f& vec1, const Vector3f& vec2, const Timestamp& tim1, const Timestamp& tim2, const Timestamp& now) {
return Vector3f();
}

View File

@@ -12,6 +12,8 @@ public:
enum Sound { NOSOUND, STEP, FALL };
Player(const Vector3f& position, float rotX = 0, float rotY = 0);
~Player();
void TurnLeftRight(float value);
void TurnTopBottom(float value);
Vector3f GetInput(bool front, bool back, bool left, bool right, bool jump, bool dash, float elapsedTime);
@@ -26,12 +28,13 @@ public:
float GetHP() const;
void Teleport(int& x, int& z);
private:
protected:
Vector3f m_position;
Vector3f m_velocity;
Vector3f m_direction;
std::string m_username;
uint64_t id = 0;
float m_rotX = 0;
float m_rotY = 0;
@@ -40,6 +43,9 @@ private:
float m_hp;
bool m_airborne;
Vector3f InterpolatePosition(const Vector3f& vec1, const Vector3f& vec2, const Timestamp& tim1, const Timestamp& tim2, const Timestamp& now);
};
#endif //_PLAYER_H__

View File

@@ -130,7 +130,7 @@ void World::GetScope(unsigned int& x, unsigned int& y) {
y = m_center[1];
}
void World::Update(Bullet* bullets[MAX_BULLETS], const Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]) {
void World::Update(Bullet* bullets[MAX_BULLETS], Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]) {
UpdateWorld(player_pos, blockinfo);
//TransposeWorld(player_pos, bullets);
}
@@ -407,4 +407,4 @@ void World::UpdateWorld(const Vector3f& player, BlockInfo* blockinfo[BTYPE_LAST]
}*/
}
int World::GettbDeleted() const { return m_tbDeleted.size(); }
int World::GettbDeleted() const { return m_tbDeleted.size(); }

View File

@@ -30,7 +30,7 @@ public:
BlockType BlockAt(float x, float y, float z, BlockType defaultBlockType = BTYPE_AIR) const;
BlockType BlockAt(const Vector3f& pos, BlockType defaultBlockType = BTYPE_AIR) const;
void Update(Bullet* bullets[MAX_BULLETS], const Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]);
void Update(Bullet* bullets[MAX_BULLETS], Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]);
void GetScope(unsigned int& x, unsigned int& y);

View File

@@ -1,30 +0,0 @@
cmake_minimum_required(VERSION 3.18.4)
project(SQCSim-Server VERSION 0.1)
add_compile_options("-Wno-narrowing")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_STANDARD_REQUIRED True)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../out")
set(SQCSIM_COMMON_DIR "../../SQCSim-common/")
add_library(SQCSim-common
"${SQCSIM_COMMON_DIR}blockinfo.cpp"
"${SQCSIM_COMMON_DIR}bullet.cpp"
"${SQCSIM_COMMON_DIR}chunk.cpp"
"${SQCSIM_COMMON_DIR}netprotocol.cpp"
"${SQCSIM_COMMON_DIR}opensimplex.cpp"
"${SQCSIM_COMMON_DIR}player.cpp"
"${SQCSIM_COMMON_DIR}transformation.cpp"
"${SQCSIM_COMMON_DIR}world.cpp"
)
add_executable(SQCSim-server
"../connection.cpp"
"../server.cpp"
"../main.cpp"
)
target_link_libraries(SQCSim-server PUBLIC SQCSim-common)

View File

@@ -14,4 +14,4 @@
typedef unsigned char LogDest;
enum LOG_DEST { CONSOLE, LOGFILE, LOG_LAST };
#endif
#endif

View File

@@ -85,7 +85,7 @@ int Server::Ready() {
while (!readystart) {
sockaddr_in sockad;
unsigned int addrlen = sizeof(sockad);
int addrlen = sizeof(sockad);
SOCKET sock = accept(m_sock_tcp, (sockaddr*)&sockad, &addrlen);
if (sock < 0)
@@ -140,7 +140,7 @@ void Server::Run() {
Log("Partie en cours...", false, false);
}
inline std::string Server::LogTimestamp() {
inline std::string Server::Timestamp() {
time_t rawtime;
struct tm timeinfo;
char buffer[80];
@@ -162,11 +162,11 @@ inline std::string Server::LogTimestamp() {
void Server::Log(std::string str, bool is_error = false, bool is_fatal = false) {
switch (m_log) {
case LOG_DEST::LOGFILE:
m_logfile << LogTimestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl;
m_logfile << Timestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl;
break;
case LOG_DEST::CONSOLE:
default:
std::cout << LogTimestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl;
std::cout << Timestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl;
break;
}

View File

@@ -35,7 +35,7 @@ private:
World* m_world = nullptr;
std::string LogTimestamp();
std::string Timestamp();
void Log(std::string str, bool is_error, bool is_fatal);
void buildIdList(size_t size);

View File

@@ -25,13 +25,14 @@
<ClInclude Include="engine.h" />
<ClInclude Include="mesh.h" />
<ClInclude Include="openglcontext.h" />
<ClInclude Include="remoteplayer.h" />
<ClInclude Include="shader.h" />
<ClInclude Include="skybox.h" />
<ClInclude Include="texture.h" />
<ClInclude Include="textureatlas.h" />
<ClInclude Include="tool.h" />
<ClInclude Include="vertexbuffer.h" />
<ClInclude Include="worldrenderer.h" />
<ClInclude Include="renderer.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="audio.cpp" />
@@ -40,13 +41,14 @@
<ClCompile Include="main.cpp" />
<ClCompile Include="mesh.cpp" />
<ClCompile Include="openglcontext.cpp" />
<ClCompile Include="remoteplayer.cpp" />
<ClCompile Include="shader.cpp" />
<ClCompile Include="skybox.cpp" />
<ClCompile Include="texture.cpp" />
<ClCompile Include="textureatlas.cpp" />
<ClCompile Include="tool.cpp" />
<ClCompile Include="vertexbuffer.cpp" />
<ClCompile Include="worldrenderer.cpp" />
<ClCompile Include="renderer.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SQCSim-common\SQCSim-common.vcxproj">
@@ -105,8 +107,8 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>external\irrKlang-1.6.0\include;external\glew210\include;external\devil178\include;external\sfml251\include;$(IncludePath)</IncludePath>
<LibraryPath>external\glew210\lib;external\sfml251\lib;external\devil178\lib;external\irrKlang-1.6.0\lib\Win32-visualStudio;$(LibraryPath)</LibraryPath>
<IncludePath>external\irrKlang-1.6.0\include;external\glew210\include;external\devil180\include;external\sfml251-32\include;$(IncludePath)</IncludePath>
<LibraryPath>external\glew210\lib\Release\Win32;external\sfml251-32\lib;external\devil180\lib\x86\Release;external\irrKlang-1.6.0\lib\Win32-visualStudio;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
@@ -115,8 +117,8 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>external\devil180\include;external\irrKlang-1.6.0\include;external\sfml251\include;external\glew210\include;$(IncludePath)</IncludePath>
<LibraryPath>external\sfml251\lib;external\devil180\lib\x86\Release;external\glew210\lib\Release\Win32;$(LibraryPath);external\irrKlang-1.6.0\lib\Win32-visualStudio</LibraryPath>
<IncludePath>external\devil180\include;external\irrKlang-1.6.0\include;external\sfml251-32\include;external\glew210\include;$(IncludePath)</IncludePath>
<LibraryPath>external\sfml251-32\lib;external\devil180\lib\x86\Release;external\glew210\lib\Release\Win32;$(LibraryPath);external\irrKlang-1.6.0\lib\Win32-visualStudio</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>

View File

@@ -47,7 +47,10 @@
<ClInclude Include="mesh.h">
<Filter>Fichiers d%27en-tête</Filter>
</ClInclude>
<ClInclude Include="worldrenderer.h">
<ClInclude Include="renderer.h">
<Filter>Fichiers d%27en-tête</Filter>
</ClInclude>
<ClInclude Include="remoteplayer.h">
<Filter>Fichiers d%27en-tête</Filter>
</ClInclude>
</ItemGroup>
@@ -88,7 +91,10 @@
<ClCompile Include="mesh.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
<ClCompile Include="worldrenderer.cpp">
<ClCompile Include="renderer.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
<ClCompile Include="remoteplayer.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
</ItemGroup>

View File

@@ -1,14 +1,8 @@
#ifndef AUDIO_H__
#define AUDIO_H__
#ifdef _WIN32
#include <irrKlang.h>
#include <ik_ISoundSource.h>
#else
#include "./external/irrKlang-64bit-1.6.0/include/irrKlang.h"
#include "./external/irrKlang-64bit-1.6.0/include/ik_ISoundSource.h"
#endif
#include "../SQCSim-common/vector3.h"
#include "define.h"
@@ -35,4 +29,4 @@ public:
void PauseEngine();
};
#endif // AUDIO_H__
#endif // AUDIO_H__

View File

@@ -1,68 +0,0 @@
cmake_minimum_required(VERSION 3.18.4)
project(SQCSim-Client VERSION 0.8)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_STANDARD_REQUIRED True)
set(CMAKE_BUILD_DIRECTORY "./build")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../")
set(SQCSIM_COMMON_DIR "../../SQCSim-common/")
set(SQCSIM_EXTERN_DIR "../external/")
find_package(SFML COMPONENTS system window graphics REQUIRED)
find_package(DevIL REQUIRED)
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
find_library(IRRKLANG_LIBRARY
NAMES libIrrKlang.so
PATHS "${SQCSIM_EXTERN_DIR}/irrKlang-64bit-1.6.0/lib/linux-gcc-64/")
include_directories(
${SQCSIM_EXTERN_DIR}/irrKlang-64bit-1.6.0/include/
${SFML_INCLUDE_DIRS}
${IL_INCLUDE_DIR}
)
add_library(SQCSim-common
"${SQCSIM_COMMON_DIR}blockinfo.cpp"
"${SQCSIM_COMMON_DIR}bullet.cpp"
"${SQCSIM_COMMON_DIR}chunk.cpp"
"${SQCSIM_COMMON_DIR}netprotocol.cpp"
"${SQCSIM_COMMON_DIR}opensimplex.cpp"
"${SQCSIM_COMMON_DIR}player.cpp"
"${SQCSIM_COMMON_DIR}transformation.cpp"
"${SQCSIM_COMMON_DIR}world.cpp"
)
add_executable(SQCSim-client
"../audio.cpp"
"../connector.cpp"
"../engine.cpp"
"../mesh.cpp"
"../openglcontext.cpp"
"../shader.cpp"
"../skybox.cpp"
"../texture.cpp"
"../textureatlas.cpp"
"../tool.cpp"
"../vertexbuffer.cpp"
"../worldrenderer.cpp"
"../main.cpp"
)
target_link_libraries(SQCSim-client PUBLIC SQCSim-common
${IRRKLANG_LIBRARY}
sfml-system
sfml-window
sfml-graphics
GL
GLU
GLEW
${IL_LIBRARIES}
${ILU_LIBRARIES}
)

View File

@@ -17,6 +17,8 @@ public:
//void SendInput();
//int Sync();
// void updateRemotePlayers(std::map<RemotePlayers> rplayers);
private:
#ifdef _WIN32
WSADATA m_wsaData;

View File

@@ -1,29 +1,27 @@
#ifndef CLI_DEFINE_H__
#define CLI_DEFINE_H__
//#define SFML_STATIC true
#include <iostream>
#include <chrono>
#include <iomanip>
#include <GL/glew.h>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include "../SQCSim-common/define.h"
#ifdef _WIN32
#include <GL/glew.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#include <climits>
#endif
#define NETWORK_TEST false
#define SRV_ADDR "127.0.0.1"
#define COUNTDOWN 300
#define BASE_WIDTH 640
#define BASE_HEIGHT 480
#define BASE_WIDTH 1920
#define BASE_HEIGHT 1080
#define TEXTURE_PATH "./media/textures/"
#define SHADER_PATH "./media/shaders/"

View File

@@ -1 +0,0 @@

View File

@@ -1,5 +1,23 @@
#include "engine.h"
#include <iostream>
#include <chrono>
#include <thread>
#include <queue>
// Define a structure to represent notifications
struct Notification {
std::string message;
float displayStartTime = 0.0f;
};
// Use a queue to manage notifications
//std::queue<Notification> notificationQueue;
// Use a vector to manage notifications
std::vector<Notification> notifications;
Engine::Engine() {}
Engine::~Engine() {
@@ -113,6 +131,91 @@ void Engine::LoadResource() {
void Engine::UnloadResource() {}
void Engine::SystemNotification(std::string systemLog) {
std::string message = "";
message = systemLog;
DisplayNotification(message);
}
void Engine::KillNotification(Player killer, Player killed) {
std::string message = "";
message = killed.GetUsername() + " killed by -> " + killer.GetUsername();
DisplayNotification(message);
}
void Engine::DisplayNotification(std::string message) {
if (message.length() > 45) {
message = message.substr(0, 45);
}
// Create a new notification and add it to the queue
Notification newNotification;
newNotification.message = message;
newNotification.displayStartTime = m_time;
notifications.push_back(newNotification);
}
// Add a method to process the notification queue
void Engine::ProcessNotificationQueue() {
m_textureFont.Bind();
float scale = GetScale();
unsigned int xOffset = Width() - Width() * 0.26;
unsigned int yOffset = Height() - (Height() / 2.2);
// Iterate through the notifications and display them
for (auto it = notifications.begin(); it != notifications.end(); ) {
float timeSinceDisplay = m_time - it->displayStartTime;
// Display the notification message with vertical offset
unsigned int y = yOffset - (static_cast<unsigned int>(scale * 20) * (it - notifications.begin()));
glDisable(GL_STENCIL_TEST);
glDisable(GL_DEPTH_TEST);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glBlendEquation(GL_FUNC_ADD);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0, Width(), 0, Height(), -1, 1);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
PrintText(xOffset, y, scale, it->message);
glBlendFunc(GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR);
glBlendEquation(GL_FUNC_SUBTRACT);
glEnable(GL_STENCIL_TEST);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
// Check if it's time to remove the notification (display for 2 seconds)
if (timeSinceDisplay >= 4.0f) {
it = notifications.erase(it); // Remove the notification
}
else {
++it;
}
}
}
void Engine::DisplayCrosshair() {
m_textureCrosshair.Bind();
static const int crossSize = 32;
@@ -261,6 +364,17 @@ void Engine::DrawHud(float elapsedTime, BlockType bloc) {
int timer = GetCountdown(elapsedTime);
// Appel de la fonction pour l'affichage de notifications
if (m_keyK) {
SystemNotification(m_messageNotification);
m_keyK = false;
}
if (m_keyL) {
KillNotification(m_player, m_player);
m_keyL = false;
}
if (m_displayInfo) {
DisplayInfo(elapsedTime, bloc);
}
@@ -417,12 +531,13 @@ void Engine::Render(float elapsedTime) {
m_bullets[x] = nullptr;
}
m_wrenderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas);
m_renderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas);
m_world.Update(m_bullets, m_player.GetPosition(), m_blockinfo);
m_wrenderer.UpdateWorld(&m_world, m_player.GetPosition(), m_blockinfo);
m_renderer.UpdateMesh(&m_world, m_player.GetPosition(), m_blockinfo);
if (m_isSkybox) m_skybox.Render(skybox);
ProcessNotificationQueue();
DrawHud(elapsedTime, bloc);
static bool fell = false;
@@ -474,6 +589,13 @@ void Engine::KeyPressEvent(unsigned char key) {
break;
case 5: // F - Ignorer
break;
case 10: // K - Debugging DisplayNotification()
m_keyK = true;
m_messageNotification = "notifications systeme peuvent <20>tre affich<63>";
break;
case 11: // L - Debugging DisplayNotification()
m_keyL = true;
break;
case 6: // G - Ignorer
break;
case 12: // M - Ignorer
@@ -522,6 +644,12 @@ void Engine::KeyReleaseEvent(unsigned char key) {
m_displayInfo = !m_displayInfo;
std::cout << "DISPLAY INFO " << (m_displayInfo ? "enabled" : "disabled") << std::endl;
break;
case 10: // K
m_keyK = false;
break;
case 11: // L - Debugging DisplayNotification()
m_keyL = false;
break;
case 12: // M - Toggle music
m_audio.ToggleMusicState();
break;

View File

@@ -18,7 +18,7 @@
#include "audio.h"
#include "textureatlas.h"
#include "connector.h"
#include "worldrenderer.h"
#include "renderer.h"
class Engine : public OpenglContext {
public:
@@ -43,6 +43,10 @@ private:
bool LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps = true, bool stopOnError = true);
void SystemNotification(std::string systemLog);
void KillNotification(Player killer, Player killed);
void DisplayNotification(std::string message);
void ProcessNotificationQueue();
void DisplayCrosshair();
void DisplayCurrentItem();
void DisplayHud(int timer);
@@ -56,7 +60,7 @@ private:
TextureAtlas m_textureAtlas = TextureAtlas(BTYPE_LAST);
World m_world = World();
WorldRenderer m_wrenderer = WorldRenderer();
Renderer m_renderer = Renderer();
Texture m_textureSkybox;
Texture m_textureFont;
@@ -70,7 +74,7 @@ private:
irrklang::ISound* m_scream;
Player m_player = Player(Vector3f(.5f, CHUNK_SIZE_Y + 1.8f, .5f));
Bullet* m_bullets[MAX_BULLETS];
float m_scale;
@@ -89,6 +93,8 @@ private:
bool m_resetcountdown = false;
bool m_stopcountdown = false;
bool m_keyK = false;
bool m_keyL = false;
bool m_keyW = false;
bool m_keyA = false;
bool m_keyS = false;
@@ -99,6 +105,8 @@ private:
bool m_mouseC = false;
bool m_mouseWU = false;
bool m_mouseWD = false;
std::string m_messageNotification = "";
};
#endif // ENGINE_H__

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,98 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SFML - Simple and Fast Multimedia Library</title>
<meta http-equiv="Content-Type" content="text/html;"/>
<meta charset="utf-8"/>
<!--<link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
<link rel="stylesheet" type="text/css" href="doxygen.css" title="default" media="screen,print" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
</head>
<body>
<div id="banner-container">
<div id="banner">
<span id="sfml">SFML 2.5.1</span>
</div>
</div>
<div id="content">
<!-- Generated by Doxygen 1.8.14 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_c0a853e81d6f1c1f0a3eb7a27dc24256.html">SFML</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">GpuPreference.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Headers.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;SFML/Config.hpp&gt;</code><br />
</div>
<p><a href="GpuPreference_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ab0233c2d867cbd561036ed2440a4fec0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="GpuPreference_8hpp.html#ab0233c2d867cbd561036ed2440a4fec0">SFML_DEFINE_DISCRETE_GPU_PREFERENCE</a></td></tr>
<tr class="memdesc:ab0233c2d867cbd561036ed2440a4fec0"><td class="mdescLeft">&#160;</td><td class="mdescRight">A macro to encourage usage of the discrete GPU. <a href="#ab0233c2d867cbd561036ed2440a4fec0">More...</a><br /></td></tr>
<tr class="separator:ab0233c2d867cbd561036ed2440a4fec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Headers. </p>
<p>File containing SFML_DEFINE_DISCRETE_GPU_PREFERENCE </p>
<p class="definition">Definition in file <a class="el" href="GpuPreference_8hpp_source.html">GpuPreference.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ab0233c2d867cbd561036ed2440a4fec0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0233c2d867cbd561036ed2440a4fec0">&#9670;&nbsp;</a></span>SFML_DEFINE_DISCRETE_GPU_PREFERENCE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SFML_DEFINE_DISCRETE_GPU_PREFERENCE</td>
</tr>
</table>
</div><div class="memdoc">
<p>A macro to encourage usage of the discrete GPU. </p>
<p>In order to inform the Nvidia/AMD driver that an SFML application could benefit from using the more powerful discrete GPU, special symbols have to be publicly exported from the final executable.</p>
<p>SFML defines a helper macro to easily do this.</p>
<p>Place SFML_DEFINE_DISCRETE_GPU_PREFERENCE in the global scope of a source file that will be linked into the final executable. Typically it is best to place it where the main function is also defined. </p>
<p class="definition">Definition at line <a class="el" href="GpuPreference_8hpp_source.html#l00069">69</a> of file <a class="el" href="GpuPreference_8hpp_source.html">GpuPreference.hpp</a>.</p>
</div>
</div>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
SFML is licensed under the terms and conditions of the <a href="https://www.sfml-dev.org/license.php">zlib/png license</a>.<br>
Copyright &copy; Laurent Gomila &nbsp;::&nbsp;
Documentation generated by <a href="http://www.doxygen.org/" title="doxygen website">doxygen</a> &nbsp;::&nbsp;
</div>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More