mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2025-02-26 19:54:14 +01:00
--HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40609
50 lines
1001 B
C++
50 lines
1001 B
C++
// TESTBAIL
|
|
// Different compilation unit
|
|
|
|
#include "sourcehook.h"
|
|
#include "sourcehook_test.h"
|
|
#include "testbail.h"
|
|
|
|
static unsigned int n_calls = 0;
|
|
|
|
int EatYams_Handler2(int a)
|
|
{
|
|
ADD_STATE(State_EatYams_Handler2_Called(a));
|
|
RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, 6, &IGaben::EatYams, (0xBEEF));
|
|
}
|
|
|
|
int EatYams_Handler3(int a)
|
|
{
|
|
ADD_STATE(State_EatYams_Handler3_Called(a));
|
|
RETURN_META_VALUE(MRES_IGNORED, 0);
|
|
}
|
|
|
|
namespace N_TestBail
|
|
{
|
|
bool TestBail2(std::string &error)
|
|
{
|
|
g_PLID = 2;
|
|
|
|
SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false);
|
|
SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false);
|
|
|
|
int ret = g_Gabgab->EatYams(0xDEAD);
|
|
|
|
CHECK_COND(ret == 6, "Part 2.1");
|
|
|
|
n_calls++;
|
|
|
|
return true;
|
|
}
|
|
|
|
void UntestBail2()
|
|
{
|
|
while (n_calls)
|
|
{
|
|
SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false);
|
|
SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false);
|
|
n_calls--;
|
|
}
|
|
}
|
|
}
|