You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.6 KiB
66 lines
1.6 KiB
#include <gtest/gtest.h> |
|
|
|
#include "effects.h" |
|
#include "player.h" |
|
|
|
using namespace devilution; |
|
|
|
TEST(Effects, CalculateSoundPosition_center) |
|
{ |
|
Players.resize(1); |
|
MyPlayer = &Players[0]; |
|
MyPlayer->position.tile = { 50, 50 }; |
|
int plVolume = 0; |
|
int plPan = 0; |
|
EXPECT_EQ(CalculateSoundPosition({ 50, 50 }, &plVolume, &plPan), true); |
|
EXPECT_EQ(plVolume, 0); |
|
EXPECT_EQ(plPan, 0); |
|
} |
|
|
|
TEST(Effects, CalculateSoundPosition_near) |
|
{ |
|
Players.resize(1); |
|
MyPlayer = &Players[0]; |
|
MyPlayer->position.tile = { 50, 50 }; |
|
int plVolume = 0; |
|
int plPan = 0; |
|
EXPECT_EQ(CalculateSoundPosition({ 55, 50 }, &plVolume, &plPan), true); |
|
EXPECT_EQ(plVolume, -320); |
|
EXPECT_EQ(plPan, 1280); |
|
} |
|
|
|
TEST(Effects, CalculateSoundPosition_out_of_range) |
|
{ |
|
Players.resize(1); |
|
MyPlayer = &Players[0]; |
|
MyPlayer->position.tile = { 12, 12 }; |
|
int plVolume = 1234; |
|
int plPan = 0; |
|
EXPECT_EQ(CalculateSoundPosition({ 112, 112 }, &plVolume, &plPan), false); |
|
EXPECT_EQ(plVolume, 1234); |
|
EXPECT_EQ(plPan, 0); |
|
} |
|
|
|
TEST(Effects, CalculateSoundPosition_extreme_right) |
|
{ |
|
Players.resize(1); |
|
MyPlayer = &Players[0]; |
|
MyPlayer->position.tile = { 50, 50 }; |
|
int plVolume = 0; |
|
int plPan = 0; |
|
EXPECT_EQ(CalculateSoundPosition({ 75, 25 }, &plVolume, &plPan), true); |
|
EXPECT_EQ(plVolume, -2176); |
|
EXPECT_EQ(plPan, 6400); |
|
} |
|
|
|
TEST(Effects, CalculateSoundPosition_extreme_left) |
|
{ |
|
Players.resize(1); |
|
MyPlayer = &Players[0]; |
|
MyPlayer->position.tile = { 50, 50 }; |
|
int plVolume = 0; |
|
int plPan = 0; |
|
EXPECT_EQ(CalculateSoundPosition({ 25, 75 }, &plVolume, &plPan), true); |
|
EXPECT_EQ(plVolume, -2176); |
|
EXPECT_EQ(plPan, -6400); |
|
}
|
|
|