syntax fixes, some things were out of sync

develop
Petr Mrázek 2010-01-01 02:30:35 +00:00
parent c7c446a33a
commit 037d1369cb
3 changed files with 146 additions and 134 deletions

@ -876,7 +876,7 @@ void API::getItemIndexesInBox(vector<uint32_t> &indexes,
temp2 temp2; temp2 temp2;
for(int i =0;i<size;i++){ for(int i =0;i<size;i++){
uint32_t temp = *(uint32_t *) d->p_itm->at(i); uint32_t temp = *(uint32_t *) d->p_itm->at(i);
Mread(temp+sizeof(uint32_t),5 * sizeof(uint16_t), (uint8_t *) &temp2); g_pProcess->read(temp+sizeof(uint32_t),5 * sizeof(uint16_t), (uint8_t *) &temp2);
if(temp2.flags & (1 << 0)){ if(temp2.flags & (1 << 0)){
if (temp2.coords[0] >= x1 && temp2.coords[0] < x2) if (temp2.coords[0] >= x1 && temp2.coords[0] < x2)
{ {
@ -947,7 +947,7 @@ bool API::ReadCreature (const int32_t &index, t_creature & furball)
for(uint32_t i = 0;i<furball.numLikes;i++) for(uint32_t i = 0;i<furball.numLikes;i++)
{ {
uint32_t temp2 = *(uint32_t *) likes[i]; uint32_t temp2 = *(uint32_t *) likes[i];
Mread(temp2,sizeof(t_like),(uint8_t *) &furball.likes[i]); g_pProcess->read(temp2,sizeof(t_like),(uint8_t *) &furball.likes[i]);
} }
g_pProcess->readDWord (temp + d->creature_happiness_offset, furball.happiness); g_pProcess->readDWord (temp + d->creature_happiness_offset, furball.happiness);
@ -1332,6 +1332,9 @@ bool API::ReadItemTypes(vector< vector< t_itemType > > & itemTypes)
} }
return true; return true;
} }
// FIXME: Too dangerous. Contains hardcoded addresses and some arbitrary stuff
/*
bool API::ReadAllMatgloss(vector< vector< string > > & all) bool API::ReadAllMatgloss(vector< vector< string > > & all)
{ {
memory_info * minfo = d->offset_descriptor; memory_info * minfo = d->offset_descriptor;
@ -1381,3 +1384,4 @@ bool API::ReadAllMatgloss(vector< vector< string > > & all)
all.push_back(stringsForVec); all.push_back(stringsForVec);
return true; return true;
} }
*/

@ -209,8 +209,10 @@ namespace DFHack
memory_info getMemoryInfo(); memory_info getMemoryInfo();
Process * getProcess(); Process * getProcess();
DFWindow * getWindow(); DFWindow * getWindow();
/*
bool ReadAllMatgloss(vector< vector< string > > & all); // FIXME: BAD!
bool ReadAllMatgloss(vector< vector< string > > & all);
*/
bool ReadItemTypes(vector< vector< t_itemType > > & itemTypes); bool ReadItemTypes(vector< vector< t_itemType > > & itemTypes);
}; };
} // namespace DFHack } // namespace DFHack

@ -177,144 +177,150 @@ int main (void)
uint32_t numCreatures = DF.InitReadCreatures(); uint32_t numCreatures = DF.InitReadCreatures();
for(uint32_t i = 0; i < numCreatures; i++) for(uint32_t i = 0; i < numCreatures; i++)
{ {
DF.Suspend();
DFHack::t_creature temp; DFHack::t_creature temp;
DF.ReadCreature(i, temp); DF.ReadCreature(i, temp);
DF.ForceResume(); if(string(creaturestypes[temp.type].id) == "DWARF")
if(string(creaturestypes[temp.type].id) == "DWARF"){
cout << "address: " << temp.origin << " creature type: " << creaturestypes[temp.type].id << ", position: " << temp.x << "x " << temp.y << "y "<< temp.z << "z" << endl;
bool addendl = false;
if(temp.first_name[0])
{
cout << "first name: " << temp.first_name;
addendl = true;
}
if(temp.nick_name[0])
{
cout << ", nick name: " << temp.nick_name;
addendl = true;
}
string transName = DF.TranslateName(temp.last_name,names,creaturestypes[temp.type].id);
if(!transName.empty()){
cout << ", trans name: " << transName;
addendl=true;
}
//cout << ", generic name: " << DF.TranslateName(temp.last_name,names,"GENERIC");
/*
if(!temp.trans_name.empty()){
cout << ", trans name: " << temp.trans_name;
addendl =true;
}
if(!temp.generic_name.empty()){
cout << ", generic name: " << temp.generic_name;
addendl=true;
}
*/
cout << ", likes: ";
for(uint32_t i = 0;i<temp.numLikes; i++){
if(printLike(temp.likes[i],mat,itemTypes))
cout << ", ";
}
if(addendl)
{ {
cout << "address: " << temp.origin << " creature type: " << creaturestypes[temp.type].id << ", position: " << temp.x << "x " << temp.y << "y "<< temp.z << "z" << endl;
bool addendl = false;
if(temp.first_name[0])
{
cout << "first name: " << temp.first_name;
addendl = true;
}
if(temp.nick_name[0])
{
cout << ", nick name: " << temp.nick_name;
addendl = true;
}
string transName = DF.TranslateName(temp.last_name,names,creaturestypes[temp.type].id);
if(!transName.empty())
{
cout << ", trans name: " << transName;
addendl=true;
}
//cout << ", generic name: " << DF.TranslateName(temp.last_name,names,"GENERIC");
/*
if(!temp.trans_name.empty()){
cout << ", trans name: " << temp.trans_name;
addendl =true;
}
if(!temp.generic_name.empty()){
cout << ", generic name: " << temp.generic_name;
addendl=true;
}
*/
cout << ", likes: ";
for(uint32_t i = 0;i<temp.numLikes; i++)
{
if(printLike(temp.likes[i],mat,itemTypes))
{
cout << ", ";
}
}
if(addendl)
{
cout << endl;
addendl = false;
}
cout << "profession: " << mem.getProfession(temp.profession) << "(" << (int) temp.profession << ")";
if(temp.custom_profession[0])
{
cout << ", custom profession: " << temp.custom_profession;
}
if(temp.current_job.active)
{
cout << ", current job: " << mem.getJob(temp.current_job.jobId);
}
cout << endl; cout << endl;
addendl = false; cout << "happiness: " << temp.happiness << ", strength: " << temp.strength << ", agility: "
} << temp.agility << ", toughness: " << temp.toughness << ", money: " << temp.money << ", id: " << temp.id;
cout << "profession: " << mem.getProfession(temp.profession) << "(" << (int) temp.profession << ")"; if(temp.squad_leader_id != -1)
if(temp.custom_profession[0]) {
{ cout << ", squad_leader_id: " << temp.squad_leader_id;
cout << ", custom profession: " << temp.custom_profession;
}
if(temp.current_job.active)
{
cout << ", current job: " << mem.getJob(temp.current_job.jobId);
}
cout << endl;
cout << "happiness: " << temp.happiness << ", strength: " << temp.strength << ", agility: "
<< temp.agility << ", toughness: " << temp.toughness << ", money: " << temp.money << ", id: " << temp.id;
if(temp.squad_leader_id != -1){
cout << ", squad_leader_id: " << temp.squad_leader_id;
}
cout << ", sex: ";
if(temp.sex == 0){
cout << "Female";
}
else{
cout <<"Male";
}
cout << endl;
/*
//skills
for(unsigned int i = 0; i < temp.skills.size();i++){
if(i > 0){
cout << ", ";
} }
cout << temp.skills[i].name << ": " << temp.skills[i].rating; cout << ", sex: ";
} if(temp.sex == 0)
*/ {
/* cout << "Female";
* FLAGS 1 }
*/ else
cout << "flags1: "; {
print_bits(temp.flags1.whole, cout); cout <<"Male";
cout << endl; }
if(temp.flags1.bits.dead) cout << endl;
{
cout << "dead ";
}
if(temp.flags1.bits.on_ground)
{
cout << "on the ground, ";
}
if(temp.flags1.bits.skeleton)
{
cout << "skeletal ";
}
if(temp.flags1.bits.zombie)
{
cout << "zombie ";
}
if(temp.flags1.bits.tame)
{
cout << "tame ";
}
if(temp.flags1.bits.royal_guard)
{
cout << "royal_guard ";
}
if(temp.flags1.bits.fortress_guard)
{
cout << "fortress_guard ";
}
/* /*
* FLAGS 2 //skills
for(unsigned int i = 0; i < temp.skills.size();i++){
if(i > 0){
cout << ", ";
}
cout << temp.skills[i].name << ": " << temp.skills[i].rating;
}
*/ */
cout << endl << "flags2: "; /*
print_bits(temp.flags2.whole, cout); * FLAGS 1
cout << endl; */
if(temp.flags2.bits.killed) cout << "flags1: ";
{ print_bits(temp.flags1.whole, cout);
cout << "killed by kill function, "; cout << endl;
} if(temp.flags1.bits.dead)
if(temp.flags2.bits.resident) {
{ cout << "dead ";
cout << "resident, "; }
} if(temp.flags1.bits.on_ground)
if(temp.flags2.bits.gutted) {
{ cout << "on the ground, ";
cout << "gutted, "; }
} if(temp.flags1.bits.skeleton)
if(temp.flags2.bits.slaughter) {
{ cout << "skeletal ";
cout << "marked for slaughter, "; }
} if(temp.flags1.bits.zombie)
if(temp.flags2.bits.underworld) {
{ cout << "zombie ";
cout << "from the underworld, "; }
if(temp.flags1.bits.tame)
{
cout << "tame ";
}
if(temp.flags1.bits.royal_guard)
{
cout << "royal_guard ";
}
if(temp.flags1.bits.fortress_guard)
{
cout << "fortress_guard ";
}
/*
* FLAGS 2
*/
cout << endl << "flags2: ";
print_bits(temp.flags2.whole, cout);
cout << endl;
if(temp.flags2.bits.killed)
{
cout << "killed by kill function, ";
}
if(temp.flags2.bits.resident)
{
cout << "resident, ";
}
if(temp.flags2.bits.gutted)
{
cout << "gutted, ";
}
if(temp.flags2.bits.slaughter)
{
cout << "marked for slaughter, ";
}
if(temp.flags2.bits.underworld)
{
cout << "from the underworld, ";
}
cout << endl << endl;
} }
cout << endl << endl; }
}
}
DF.FinishReadCreatures(); DF.FinishReadCreatures();
DF.Detach(); DF.Detach();
#ifndef LINUX_BUILD #ifndef LINUX_BUILD