mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Replace magic numbers with BANK_COUNT_* constants
Previously, some instances of the number of banks for each section remained hardcoded. These have been replaced with BANK_COUNT_* constants. As a side-effect, this could fix a theoretical bug when using BANK(label) when the label is in a high SRAM bank (≥ 4).
This commit is contained in:
@@ -3,16 +3,6 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
enum eBankDefine {
|
||||
BANK_ROM0 = 0,
|
||||
BANK_ROMX,
|
||||
BANK_WRAM0 = 512,
|
||||
BANK_WRAMX,
|
||||
BANK_VRAM = 520,
|
||||
BANK_HRAM = 522,
|
||||
BANK_SRAM = 523
|
||||
};
|
||||
|
||||
enum eBankCount {
|
||||
BANK_COUNT_ROM0 = 1,
|
||||
BANK_COUNT_ROMX = 511,
|
||||
@@ -23,6 +13,16 @@ enum eBankCount {
|
||||
BANK_COUNT_SRAM = 16
|
||||
};
|
||||
|
||||
enum eBankDefine {
|
||||
BANK_ROM0 = 0,
|
||||
BANK_ROMX = BANK_ROM0 + BANK_COUNT_ROM0,
|
||||
BANK_WRAM0 = BANK_ROMX + BANK_COUNT_ROMX,
|
||||
BANK_WRAMX = BANK_WRAM0 + BANK_COUNT_WRAM0,
|
||||
BANK_VRAM = BANK_WRAMX + BANK_COUNT_WRAMX,
|
||||
BANK_HRAM = BANK_VRAM + BANK_COUNT_VRAM,
|
||||
BANK_SRAM = BANK_HRAM + BANK_COUNT_HRAM
|
||||
};
|
||||
|
||||
#define MAXBANKS (BANK_COUNT_ROM0 + BANK_COUNT_ROMX + BANK_COUNT_WRAM0 + BANK_COUNT_WRAMX \
|
||||
+ BANK_COUNT_VRAM + BANK_COUNT_HRAM + BANK_COUNT_SRAM)
|
||||
|
||||
|
||||
@@ -69,11 +69,11 @@ getsymbank(SLONG symid)
|
||||
}
|
||||
|
||||
if (nBank == BANK_WRAM0) return 0;
|
||||
if (nBank >= BANK_WRAMX && nBank <= (BANK_WRAMX+6))
|
||||
if (nBank >= BANK_WRAMX && nBank < (BANK_WRAMX + BANK_COUNT_WRAMX))
|
||||
return nBank - BANK_WRAMX + 1;
|
||||
if (nBank >= BANK_VRAM && nBank <= (BANK_VRAM+1))
|
||||
if (nBank >= BANK_VRAM && nBank < (BANK_VRAM + BANK_COUNT_VRAM))
|
||||
return nBank - BANK_VRAM;
|
||||
if (nBank >= BANK_SRAM && nBank <= (BANK_SRAM+3))
|
||||
if (nBank >= BANK_SRAM && nBank < (BANK_SRAM + BANK_COUNT_SRAM))
|
||||
return nBank - BANK_SRAM;
|
||||
|
||||
return nBank;
|
||||
|
||||
Reference in New Issue
Block a user