Made Flags.cpp ASM-accurate

This commit is contained in:
Clownacy 2019-02-21 20:20:13 +00:00
parent fb9b545e27
commit 88ed2d6eab
2 changed files with 27 additions and 20 deletions

View file

@ -1,10 +1,11 @@
#include "Flags.h"
#include <stdint.h>
#include <string.h>
uint8_t gFlagNPC[1000];
uint8_t gSkipFlag[0x40];
#include "WindowsWrapper.h"
unsigned char gFlagNPC[1000];
unsigned char gSkipFlag[0x40];
//Flag inits
void InitFlags()
@ -18,33 +19,39 @@ void InitSkipFlags()
}
//NPC flags
void SetNPCFlag(int a)
void SetNPCFlag(long a)
{
gFlagNPC[a / 8] |= 1 << a % 8;
}
void CutNPCFlag(int a)
void CutNPCFlag(long a)
{
gFlagNPC[a / 8] &= ~(1 << a % 8);
}
bool GetNPCFlag(int a)
BOOL GetNPCFlag(long a)
{
return ((gFlagNPC[a / 8] >> a % 8) & 1) != 0;
if (gFlagNPC[a / 8] & (1 << a % 8))
return TRUE;
else
return FALSE;
}
//Skip flags
void SetSkipFlag(int a)
void SetSkipFlag(long a)
{
gSkipFlag[a / 8] |= 1 << a % 8;
}
void CutSkipFlag(int a)
void CutSkipFlag(long a)
{
gSkipFlag[a / 8] &= ~(1 << a % 8);
}
bool GetSkipFlag(int a)
BOOL GetSkipFlag(long a)
{
return ((gSkipFlag[a / 8] >> a % 8) & 1) != 0;
if (gSkipFlag[a / 8] & (1 << a % 8))
return TRUE;
else
return FALSE;
}

View file

@ -1,15 +1,15 @@
#pragma once
#include <stdint.h>
#include "WindowsWrapper.h"
extern uint8_t gFlagNPC[1000];
extern uint8_t gSkipFlag[0x40];
extern unsigned char gFlagNPC[1000];
extern unsigned char gSkipFlag[0x40];
void InitFlags();
void InitSkipFlags();
void SetNPCFlag(int a);
void CutNPCFlag(int a);
bool GetNPCFlag(int a);
void SetSkipFlag(int a);
void CutSkipFlag(int a);
bool GetSkipFlag(int a);
void SetNPCFlag(long a);
void CutNPCFlag(long a);
BOOL GetNPCFlag(long a);
void SetSkipFlag(long a);
void CutSkipFlag(long a);
BOOL GetSkipFlag(long a);