initial commit

This commit is contained in:
Martin Michelsen
2018-10-31 23:55:32 -07:00
commit 5b8c26ccd7
814 changed files with 12277 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
#include "RareItemSet.hh"
#include <phosg/Filesystem.hh>
using namespace std;
RareItemSet::RareItemSet(const char* filename, uint8_t episode,
uint8_t difficulty, uint8_t secid) {
scoped_fd fd(filename, O_RDONLY);
size_t offset = (episode * 0x6400) + (difficulty * 0x1900) + (secid * 0x0280);
preadx(fd, this, sizeof(*this), offset);
}
bool sample_rare_item(uint8_t pc) {
int8_t shift = ((pc >> 3) & 0x1F) - 4;
if (shift < 0) {
shift = 0;
}
uint32_t rate = ((2 << shift) * ((pc & 7) + 7));
uint32_t x = ((rand() << 30) | (rand() << 15) | rand());
return (x < rate);
}