Skip to content

Commit 2c4b90c

Browse files
committed
Access voilation error. No idea why
1 parent 285b7ea commit 2c4b90c

File tree

6 files changed

+47
-68
lines changed

6 files changed

+47
-68
lines changed

Examples/GameMenu_sample/GameMenu_sample.vcxproj

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
</ProjectConfiguration>
2020
</ItemGroup>
2121
<PropertyGroup Label="Globals">
22-
<ProjectGuid>{2371809A-CD4A-45DA-9069-51A5AF301BF5}</ProjectGuid>
22+
<ProjectGuid>{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}</ProjectGuid>
2323
<RootNamespace>GameMenu_sample</RootNamespace>
2424
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
2525
</PropertyGroup>
@@ -74,12 +74,7 @@
7474
<WarningLevel>Level3</WarningLevel>
7575
<Optimization>Disabled</Optimization>
7676
<SDLCheck>true</SDLCheck>
77-
<AdditionalIncludeDirectories>C:\Users\sidhi\libraries\SFML-2.4.1\include;C:\Users\sidhi\Desktop\Projects\GameMenu_sample\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
7877
</ClCompile>
79-
<Link>
80-
<AdditionalLibraryDirectories>C:\Users\sidhi\Desktop\Projects\GameMenu_sample\lib;C:\Users\sidhi\libraries\SFML-2.4.1\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
81-
<AdditionalDependencies>GameMenu.lib;sfml-window-d.lib;sfml-graphics-d.lib;sfml-system-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
82-
</Link>
8378
</ItemDefinitionGroup>
8479
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
8580
<ClCompile>
@@ -89,8 +84,8 @@
8984
<AdditionalIncludeDirectories>C:\Users\sidhi\Desktop\Projects\GameMenu\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
9085
</ClCompile>
9186
<Link>
92-
<AdditionalLibraryDirectories>C:\Users\sidhi\Desktop\Projects\GameMenu\lib\x64\Debug;C:\Users\sidhi\libraries\SFML-2.4.1\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
93-
<AdditionalDependencies>sfml-graphics-d.lib;sfml-window-d.lib;sfml-system-d.lib;GameMenu.lib;%(AdditionalDependencies)</AdditionalDependencies>
87+
<AdditionalLibraryDirectories>C:\Users\sidhi\libraries\SFML-2.4.1\lib;C:\Users\sidhi\Desktop\Projects\GameMenu\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
88+
<AdditionalDependencies>sfml-window-d.lib;sfml-graphics-d.lib;sfml-system-d.lib;GameMenu.lib;%(AdditionalDependencies)</AdditionalDependencies>
9489
</Link>
9590
</ItemDefinitionGroup>
9691
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -118,13 +113,12 @@
118113
<Link>
119114
<EnableCOMDATFolding>true</EnableCOMDATFolding>
120115
<OptimizeReferences>true</OptimizeReferences>
121-
<AdditionalLibraryDirectories>C:\Users\sidhi\Desktop\Projects\GameMenu\lib\x64\Debug;C:\Users\sidhi\libraries\SFML-2.4.1\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
122-
<AdditionalDependencies>sfml-graphics-d.lib;sfml-window-d.lib;sfml-system-d.lib;GameMenu.lib;%(AdditionalDependencies)</AdditionalDependencies>
116+
<AdditionalLibraryDirectories>C:\Users\sidhi\libraries\SFML-2.4.1\lib;C:\Users\sidhi\Desktop\Projects\GameMenu\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
117+
<AdditionalDependencies>sfml-window-d.lib;sfml-graphics-d.lib;sfml-system-d.lib;GameMenu.lib;%(AdditionalDependencies)</AdditionalDependencies>
123118
</Link>
124119
</ItemDefinitionGroup>
125120
<ItemGroup>
126121
<ClCompile Include="tests\sample_menu.cpp" />
127-
<ClCompile Include="tests\sample_menu.cpp" />
128122
</ItemGroup>
129123
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
130124
<ImportGroup Label="ExtensionTargets">

Examples/GameMenu_sample/GameMenu_sample.vcxproj.filters

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,5 @@
1818
<ClCompile Include="tests\sample_menu.cpp">
1919
<Filter>Source Files</Filter>
2020
</ClCompile>
21-
<ClCompile Include="test\sample_menu.cpp">
22-
<Filter>Source Files</Filter>
23-
</ClCompile>
2421
</ItemGroup>
2522
</Project>

GameMenu.sln

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ VisualStudioVersion = 14.0.25420.1
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GameMenu", "GameMenu.vcxproj", "{02870BF4-F128-4D1D-AB7C-6720D328CBDC}"
77
EndProject
8-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GameMenu_sample", "Examples\GameMenu_sample\GameMenu_sample.vcxproj", "{2371809A-CD4A-45DA-9069-51A5AF301BF5}"
8+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GameMenu_sample", "Examples\GameMenu_sample\GameMenu_sample.vcxproj", "{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}"
99
EndProject
1010
Global
1111
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -23,14 +23,14 @@ Global
2323
{02870BF4-F128-4D1D-AB7C-6720D328CBDC}.Release|x64.Build.0 = Release|x64
2424
{02870BF4-F128-4D1D-AB7C-6720D328CBDC}.Release|x86.ActiveCfg = Release|Win32
2525
{02870BF4-F128-4D1D-AB7C-6720D328CBDC}.Release|x86.Build.0 = Release|Win32
26-
{2371809A-CD4A-45DA-9069-51A5AF301BF5}.Debug|x64.ActiveCfg = Debug|x64
27-
{2371809A-CD4A-45DA-9069-51A5AF301BF5}.Debug|x64.Build.0 = Debug|x64
28-
{2371809A-CD4A-45DA-9069-51A5AF301BF5}.Debug|x86.ActiveCfg = Debug|Win32
29-
{2371809A-CD4A-45DA-9069-51A5AF301BF5}.Debug|x86.Build.0 = Debug|Win32
30-
{2371809A-CD4A-45DA-9069-51A5AF301BF5}.Release|x64.ActiveCfg = Release|x64
31-
{2371809A-CD4A-45DA-9069-51A5AF301BF5}.Release|x64.Build.0 = Release|x64
32-
{2371809A-CD4A-45DA-9069-51A5AF301BF5}.Release|x86.ActiveCfg = Release|Win32
33-
{2371809A-CD4A-45DA-9069-51A5AF301BF5}.Release|x86.Build.0 = Release|Win32
26+
{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}.Debug|x64.ActiveCfg = Debug|x64
27+
{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}.Debug|x64.Build.0 = Debug|x64
28+
{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}.Debug|x86.ActiveCfg = Debug|Win32
29+
{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}.Debug|x86.Build.0 = Debug|Win32
30+
{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}.Release|x64.ActiveCfg = Release|x64
31+
{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}.Release|x64.Build.0 = Release|x64
32+
{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}.Release|x86.ActiveCfg = Release|Win32
33+
{A28CCAFC-BA0D-4833-8D9B-3D2F18B69FED}.Release|x86.Build.0 = Release|Win32
3434
EndGlobalSection
3535
GlobalSection(SolutionProperties) = preSolution
3636
HideSolutionNode = FALSE

include/GameMenu/GameMenu.h

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,11 @@ namespace gmenu {
8181

8282
public:
8383

84-
/* Only accesible constructor */
84+
/* Only available constructor */
8585
Menu(sf::RenderWindow &wnd, std::string title, std::vector<MenuItem> items, Style &st):
86-
style(st) {
87-
window = &wnd;
88-
setTitle( title );
89-
setMenuItems( items );
90-
86+
style( st ), window (wnd) {
87+
menuTitle = title;
88+
menuItems = items;
9189
}
9290

9391
/* This method is will start the menu and handover the screen control to it.
@@ -120,17 +118,11 @@ namespace gmenu {
120118
* Internal structuers *
121119
*===================================================*/
122120

123-
struct {
124-
std::vector<MenuItem> entries;
125-
int size;
126-
} menu_items;
121+
std::vector<MenuItem> menuItems;
127122

128123
struct coordinates {
129-
coordinates() {
130-
x = y = 0.f;
131-
}
132-
float x;
133-
float y;
124+
float x = 0;
125+
float y = 0;
134126
} title_location;
135127
std::vector<coordinates> item_location;
136128

@@ -142,13 +134,11 @@ namespace gmenu {
142134

143135
Style &style;
144136

145-
sf::RenderWindow *window;
146-
std::string menu_title;
147-
148-
// TODO: create an interface to set these
149-
137+
sf::RenderWindow &window;
138+
std::string menuTitle;
150139

151140
}; // Menu
152141

153-
} // namespace sui
142+
} // namespace gmenu
143+
154144
#endif

lib/libGameMenu.a

7.12 KB
Binary file not shown.

src/GameMenu/GameMenu.cpp

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ namespace gmenu {
1414
*===================================================*/
1515

1616
void Menu::setTitle(std::string title) {
17-
menu_title = title;
17+
menuTitle = title;
1818
}
1919

2020
void Menu::setMenuItems( std::vector<MenuItem> items ) {
21-
menu_items.entries = items;
22-
menu_items.size = items.size();
21+
menuItems = items;
2322
}
2423

2524

@@ -30,30 +29,29 @@ namespace gmenu {
3029
void Menu::createMenu() {
3130
setMenu();
3231
bool cont = true;
33-
while (window->isOpen() && cont)
32+
while (window.isOpen() && cont)
3433
{
35-
3634
sf::Event event;
37-
while (window->pollEvent(event)) {
35+
while (window.pollEvent(event)) {
3836
if (event.type == sf::Event::Closed)
39-
window->close();
37+
window.close();
4038
else if (event.type == sf::Event::KeyPressed) {
4139
if (event.key.code == sf::Keyboard::Up) {
42-
currently_selected_item = (currently_selected_item + menu_items.size - 1) % (menu_items.size);
40+
currently_selected_item = (currently_selected_item + menuItems.size() - 1) % (menuItems.size());
4341
}
4442
else if (event.key.code == sf::Keyboard::Down) {
45-
currently_selected_item = (currently_selected_item + 1) % (menu_items.size);
43+
currently_selected_item = (currently_selected_item + 1) % (menuItems.size());
4644
}
4745
else if (event.key.code == sf::Keyboard::Return) {
48-
cont = menu_items.entries[currently_selected_item].action->start();
46+
cont = menuItems[currently_selected_item].action->start();
4947
}
5048
}
5149
} // while( pollEvent )
5250

53-
window->clear();
51+
window.clear();
5452
drawMenu();
55-
window->display();
56-
} // while window open
53+
window.display();
54+
} // while window open
5755
} //create menu
5856

5957

@@ -77,12 +75,12 @@ namespace gmenu {
7775
x = textRect.width / 2 + style.Padding.left;
7876
}
7977
text.setPosition(sf::Vector2f(x,y));
80-
window->draw(text);
78+
window.draw(text);
8179
} //writeText(...)
8280

8381
void Menu::setMenu() {
8482

85-
std::cout << "screen size:" << window->getSize().x << " " << window->getSize().y << std::endl;
83+
std::cout << "screen size:" << window.getSize().x << " " << window.getSize().y << std::endl;
8684

8785
/* Setting title of menu */
8886
{
@@ -91,24 +89,24 @@ namespace gmenu {
9189
if ( style.layout & Layout::TitleCentre == Layout::TitleCentre ) offset_coefficient = 0.5;
9290
else if ( style.layout & Layout::TitleLeft == Layout::TitleLeft ) offset_coefficient = 0.25;
9391
else if ( style.layout & Layout::TitleRight == Layout::TitleRight ) offset_coefficient = 0.75;
94-
float x = (float) window->getSize().x * offset_coefficient, y = style.Padding.top;
92+
float x = (float) window.getSize().x * offset_coefficient, y = style.Padding.top;
9593
title_location.x = (x + style.Padding.left);
9694
title_location.y = y;
9795
std::cout << "title_location:" << title_location.x << " "<<title_location.y<<offset_coefficient<<std::endl;
9896
}
9997

100-
unsigned int menu_screen_height =(int) window->getSize().y * (1 - style.MenuTitleScaleFactor);
101-
unsigned int block_height = (int) menu_screen_height / menu_items.size * style.MenuItemScaleFactor;
98+
unsigned int menu_screen_height =(int) window.getSize().y * (1 - style.MenuTitleScaleFactor);
99+
unsigned int block_height = (int) menu_screen_height / menuItems.size() * style.MenuItemScaleFactor;
102100

103101
float offset_coefficient = 0.5;
104102
if ( style.layout & Layout::ItemCentre == Layout::ItemCentre ) offset_coefficient = 0.5;
105103
else if ( style.layout & Layout::ItemLeft == Layout::ItemLeft ) offset_coefficient = 0.25;
106104
else if ( style.layout & Layout::ItemRight == Layout::ItemRight) offset_coefficient = 0.75;
107105

108-
float x = (float)window->getSize().x * offset_coefficient + style.Padding.left;
109-
float y = ((float)window->getSize().y) - 0.75 * menu_screen_height + block_height * 1 / 8;
106+
float x = (float)window.getSize().x * offset_coefficient + style.Padding.left;
107+
float y = ((float)window.getSize().y) - 0.75 * menu_screen_height + block_height * 1 / 8;
110108
/* Calculating Menu item locations */
111-
for (int8_t i = 0; i < menu_items.size; ++i) {
109+
for (int8_t i = 0; i < menuItems.size(); ++i) {
112110
coordinates crd ;
113111
crd.x = x;
114112
crd.y = y;
@@ -121,14 +119,14 @@ namespace gmenu {
121119
} //setMenu()
122120

123121
void Menu::drawMenu() {
124-
writeText(menu_title, style.ItemFont, style.TitleFontSize, title_location.x, title_location.y, style.TitleColor);
122+
writeText(menuTitle, style.ItemFont, style.TitleFontSize, title_location.x, title_location.y, style.TitleColor);
125123
sf::Color color = style.ItemColor;
126-
for (int i = 0; i < menu_items.size; ++i)
124+
for (int i = 0; i < menuItems.size(); ++i)
127125
{
128126
if (i == currently_selected_item) {
129127
color = style.Selected;
130128
}
131-
writeText(menu_items.entries[i].title, style.ItemFont, style.ItemFontSize, item_location[i].x, item_location[i].y, color);
129+
writeText( menuItems[i].title, style.ItemFont, style.ItemFontSize, item_location[i].x, item_location[i].y, color);
132130
color = style.ItemColor;
133131
}
134132

0 commit comments

Comments
 (0)