Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added 2517597.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Kirby.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 12 additions & 11 deletions RoboCat/Chapter3.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,13 @@
<ProjectGuid>{B3B75176-8D81-4E7B-A5D0-C2E5423844D3}</ProjectGuid>
<RootNamespace>SimpleSample</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
Expand Down Expand Up @@ -92,6 +93,9 @@
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<OutDir>Bin\$(Configuration)\</OutDir>
<Allegro_AddonImage>true</Allegro_AddonImage>
<Allegro_AddonTTF>true</Allegro_AddonTTF>
<Allegro_AddonFont>true</Allegro_AddonFont>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<LinkIncremental>true</LinkIncremental>
Expand Down Expand Up @@ -128,7 +132,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories>..\SDL\include;Inc;..\</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>RoboCatPCH.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
Expand Down Expand Up @@ -370,10 +374,10 @@
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="Inc\AckRange.h" />
<ClInclude Include="..\allegro_wrapper_functions-main\Colour.h" />
<ClInclude Include="..\allegro_wrapper_functions-main\GraphicsLibrary.h" />
<ClInclude Include="..\allegro_wrapper_functions-main\InputSystem.h" />
<ClInclude Include="Inc\ByteSwap.h" />
<ClInclude Include="Inc\DeliveryNotificationManager.h" />
<ClInclude Include="Inc\InFlightPacket.h" />
<ClInclude Include="Inc\LinkingContext.h" />
<ClInclude Include="Inc\MemoryBitStream.h" />
<ClInclude Include="Inc\OutputWindow.h" />
Expand All @@ -385,12 +389,10 @@
<ClInclude Include="Inc\TCPSocket.h" />
<ClInclude Include="Inc\RoboCatPCH.h" />
<ClInclude Include="Inc\RoboCatShared.h" />
<ClInclude Include="Inc\Timing.h" />
<ClInclude Include="Inc\TransmissionData.h" />
<ClInclude Include="Inc\UDPSocket.h" />
<ClCompile Include="Src\AckRange.cpp" />
<ClCompile Include="Src\DeliveryNotificationManager.cpp" />
<ClCompile Include="Src\InFlightPacket.cpp" />
<ClCompile Include="..\allegro_wrapper_functions-main\Colour.cpp" />
<ClCompile Include="..\allegro_wrapper_functions-main\GraphicsLibrary.cpp" />
<ClCompile Include="..\allegro_wrapper_functions-main\InputSystem.cpp" />
<ClCompile Include="Src\Main.cpp" />
<ClCompile Include="Src\MemoryBitStream.cpp" />
<ClCompile Include="Src\OutputWindow.cpp" />
Expand All @@ -405,7 +407,6 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RoboCatPCH.h</PrecompiledHeaderFile>
</ClCompile>
<ClCompile Include="Src\Timing.cpp" />
<ClCompile Include="Src\UDPSocket.cpp" />
</ItemGroup>
<ItemGroup>
Expand Down
32 changes: 32 additions & 0 deletions RoboCat/Colour.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
Allegro Wrapper Functions
Written by Adel Talhouk in FA21
Colour.cpp
*/

#include "Colour.h"
#include "RoboCatPCH.h"

//Constructor - without alpha
Colour::Colour(unsigned __int8 r, unsigned __int8 g, unsigned __int8 b)
{
mR = r;
mG = g;
mB = b;
mA = 255;
}

//Constructor - with alpha
Colour::Colour(unsigned __int8 r, unsigned __int8 g, unsigned __int8 b, unsigned __int8 a)
{
mR = r;
mG = g;
mB = b;
mA = a;
}

//Destructor
Colour::~Colour()
{

}
43 changes: 43 additions & 0 deletions RoboCat/Colour.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#pragma once

/*
Allegro Wrapper Functions
Written by Adel Talhouk in FA21
Colour.h

File information:
This file contains data used for colours.
*/

class Colour
{
//-------------------------Private data-------------------------

//Red channel
unsigned __int8 mR;

//Green channel
unsigned __int8 mG;

//Blue channel
unsigned __int8 mB;

//Alpha channel
unsigned __int8 mA;

//-------------------------Public data-------------------------
public:

//Constructor(s)
Colour(unsigned __int8 r, unsigned __int8 g, unsigned __int8 b);
Colour(unsigned __int8 r, unsigned __int8 g, unsigned __int8 b, unsigned __int8 a);

//Destructor
~Colour();

//Accessor(s)
unsigned __int8 getR() { return mR; };
unsigned __int8 getG() { return mG; };
unsigned __int8 getB() { return mB; };
unsigned __int8 getA() { return mA; };
};
126 changes: 126 additions & 0 deletions RoboCat/GraphicsLibrary.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
/*
Allegro Wrapper Functions
Written by Adel Talhouk in FA21
GraphicsLibrary.cpp
*/

#include "GraphicsLibrary.h"
#include "RoboCatPCH.h"

#include <iostream>
#include <algorithm>

//Constructor
GraphicsLibrary::GraphicsLibrary(float screenSizeX, float screenSizeY)
{
//Setup data - screen size
mScreenSizeX = screenSizeX;
mScreenSizeY = screenSizeY;

//Allegro display
mpDisplay = nullptr;
}

//Destructor
GraphicsLibrary::~GraphicsLibrary()
{
//Delete bitmaps
std::vector<std::pair<std::string, ALLEGRO_BITMAP*>>::iterator iterator;
for (iterator = mBitmapPointersVector.begin(); iterator != mBitmapPointersVector.end(); ++iterator)
{
al_destroy_bitmap(iterator->second);
}
mBitmapPointersVector.clear();

//Clean up display
al_destroy_display(mpDisplay);
mpDisplay = nullptr;
}

bool GraphicsLibrary::init(std::string backgroundFilePath)
{
//Init allegro
if (!al_init())
{
std::cout << "error initting Allegro\n";
system("pause");
return false;
}

//Init image addon
if (!al_init_image_addon())
{
std::cout << "error initting image add-on\n";
system("pause");
return false;
}

//Init font add on
if (!al_init_font_addon())
{
std::cout << "error initting font add-on\n";
system("pause");
return false;
}

//Init ttf add on
if (!al_init_ttf_addon())
{
std::cout << "error initting ttf add-on\n";
system("pause");
return false;
}

//Setup display
mpDisplay = al_create_display(mScreenSizeX, mScreenSizeY);

if (mpDisplay == nullptr)
{
return false;
}

return true;
}

void GraphicsLibrary::render()
{
//Flip display buffers
al_flip_display();
}

void GraphicsLibrary::loadImage(std::string imageFilePath, std::string imageIdentifier)
{
//Add the name of the image and the loaded bitmap to the vector of pairs
mBitmapPointersVector.push_back(std::make_pair(imageIdentifier, al_load_bitmap(imageFilePath.c_str())));
}

void GraphicsLibrary::drawImage(std::string imageIdentifier, float posX, float posY)
{
//Find the image and draw if it exists
std::vector<std::pair<std::string, ALLEGRO_BITMAP*>>::iterator iterator;

for (iterator = mBitmapPointersVector.begin(); iterator != mBitmapPointersVector.end(); ++iterator)
{
if (iterator->first == imageIdentifier)
{
al_draw_bitmap(iterator->second, posX, posY, 0);
}
}
}

void GraphicsLibrary::drawTintedImage(std::string imageIdentifier, float posX, float posY, Colour col)
{
//Find the image and draw if it exists
std::vector<std::pair<std::string, ALLEGRO_BITMAP*>>::iterator iterator;

//Set colour
ALLEGRO_COLOR colour = al_map_rgba(col.getR(), col.getG(), col.getB(), col.getA());

for (iterator = mBitmapPointersVector.begin(); iterator != mBitmapPointersVector.end(); ++iterator)
{
if (iterator->first == imageIdentifier)
{
al_draw_tinted_bitmap(iterator->second, colour, posX, posY, 0);
}
}
}
67 changes: 67 additions & 0 deletions RoboCat/GraphicsLibrary.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#pragma once

/*
Allegro Wrapper Functions
Written by Adel Talhouk in FA21
GraphicsLibrary.h

File information:
This file contains function abstractions from Allegro 5, wrapped up in my Graphics Library. This will
be used to render images and text to the screen.

Source I am consulting: Allegro 5.0.10 Manual - http://cdn.allegro.cc/file/library/allegro/5.0.10/allegro-5.0.10-manual.pdf
*/

#include <string>
#include <vector>

#include "Colour.h"

//https://github.com/liballeg/allegro_wiki/wiki/Allegro-in-Visual-Studio#using-nuget-within-visual-studio
#include <allegro5/allegro.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_ttf.h>
#include <allegro5/allegro_acodec.h>
#include <allegro5/allegro_image.h>
#include <allegro5/allegro_primitives.h>

class GraphicsLibrary
{
//-------------------------Private data-------------------------

//Screen data
float mScreenSizeX;
float mScreenSizeY;

//Allegro display
ALLEGRO_DISPLAY* mpDisplay;

//Other images to draw
std::vector<std::pair<std::string, ALLEGRO_BITMAP*>> mBitmapPointersVector;

friend class InputSystem;

//-------------------------Public data-------------------------
public:

//Constructor(s)
GraphicsLibrary(float screenSizeX, float screenSizeY);

//Destructor
~GraphicsLibrary();

//Accessor(s)
float getScreenSizeX() { return mScreenSizeX; };
float getScreenSizeY() { return mScreenSizeY; };

//Mutator(s)

//Functions
bool init(std::string backgroundFilePath);
void render();
void loadImage(std::string imageFilePath, std::string imageIdentifier);

//Drawing functions
void drawImage(std::string imageIdentifier, float posX, float posY);
void drawTintedImage(std::string imageIdentifier, float posX, float posY, Colour col);
};
6 changes: 0 additions & 6 deletions RoboCat/Inc/RoboCatShared.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,14 @@ class GameObject;

#include "RoboMath.h"

#include "TransmissionData.h"
#include "InFlightPacket.h"

#include "LinkingContext.h"
#include "ByteSwap.h"
#include "MemoryBitStream.h"
#include "AckRange.h"

#include "Timing.h"
#include "StringUtils.h"
#include "SocketAddress.h"
#include "SocketAddressFactory.h"
#include "UDPSocket.h"
#include "TCPSocket.h"
#include "SocketUtil.h"
#include "OutputWindow.h"
#include "DeliveryNotificationManager.h"
Loading