diff options
Diffstat (limited to 'reference/game.c')
| -rw-r--r-- | reference/game.c | 710 |
1 files changed, 0 insertions, 710 deletions
diff --git a/reference/game.c b/reference/game.c index 7e6d16d..d430658 100644 --- a/reference/game.c +++ b/reference/game.c @@ -43083,716 +43083,6 @@ void __static_initialization_and_destruction_0(int __initialize_p,int __priority return;
}
-// DWARF original prototype: void Trade(TCreature * this, Object * Obj, ulong PartnerID)
-
-void __thiscall TCreature::Trade(TCreature *this,Object *Obj,ulong PartnerID)
-
-{
- Object OVar1;
- bool bVar2;
- TPlayer *pTVar3;
- int iVar4;
- undefined4 *puVar5;
- TPlayer *Partner;
- TConnection *Connection;
- char *Name;
- Object local_5c;
- Object Help_1;
- Object local_4c [4];
- Object local_3c [4];
- Object local_2c;
- Object Help;
-
- if (this->Type == PLAYER) {
- // try { // try from 080c0226 to 080c05fa has its CatchHandler @ 080c0612
- bVar2 = Object::exists(Obj);
- if (bVar2) {
- local_2c = (Object)Obj->ObjectID;
- bVar2 = ObjectAccessible(this->ID,&local_2c,1);
- if (bVar2) {
- if (this->ID == PartnerID) {
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 9;
- }
- else {
- pTVar3 = GetPlayer(PartnerID);
- if ((pTVar3 == (TPlayer *)0x0) || ((pTVar3->super_TCreature).Type != PLAYER)) {
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 0x1b;
- }
- else {
- local_2c.ObjectID = ::NONE.ObjectID;
- local_3c[0].ObjectID = ::NONE.ObjectID;
- if (this[1].super_TSkillBase.TimerList[0xb] == (TSkill *)::NONE.ObjectID) {
- local_3c[0] = (Object)Obj->ObjectID;
- iVar4 = CountObjects(local_3c);
- if (iVar4 < 0x65) {
- local_3c[0].ObjectID = (pTVar3->super_TCreature).CrObject.ObjectID;
- local_2c.ObjectID = (this->CrObject).ObjectID;
- iVar4 = ObjectDistance(&local_2c,local_3c);
- if (iVar4 < 3) {
- bVar2 = ThrowPossible(this->posx,this->posy,this->posz,
- (pTVar3->super_TCreature).posx,
- (pTVar3->super_TCreature).posy,
- (pTVar3->super_TCreature).posz,0);
- if (bVar2) {
- bVar2 = false;
- local_3c[0].ObjectID = ::NONE.ObjectID;
- local_2c.ObjectID = ::NONE.ObjectID;
- if (((pTVar3->TradeObject).ObjectID != ::NONE.ObjectID) &&
- (pTVar3->TradePartner != this->ID)) {
- bVar2 = true;
- }
- if (!bVar2) {
- OVar1.ObjectID = (pTVar3->TradeObject).ObjectID;
- if (OVar1.ObjectID != ::NONE.ObjectID) {
- while (local_2c.ObjectID = OVar1.ObjectID,
- Object::getObjectType(local_4c),
- local_4c[0].ObjectID != 0) {
- local_4c[0] = (Object)Obj->ObjectID;
- if (local_2c.ObjectID == local_4c[0].ObjectID)
- goto LAB_080c03c7;
- Object::getContainer(&local_5c);
- local_4c[0].ObjectID = local_5c.ObjectID;
- local_2c.ObjectID = local_5c.ObjectID;
- OVar1.ObjectID = local_2c.ObjectID;
- }
- local_5c = (Object)Obj->ObjectID;
- while (Object::getObjectType(local_4c),
- local_4c[0].ObjectID != 0) {
- local_4c[0].ObjectID = local_5c.ObjectID;
- if ((pTVar3->TradeObject).ObjectID ==
- local_5c.ObjectID) goto LAB_080c03c7;
- Object::getContainer(&local_2c);
- local_4c[0].ObjectID = local_2c.ObjectID;
- local_5c.ObjectID = local_2c.ObjectID;
- }
- }
- local_4c[0] = (Object)Obj->ObjectID;
- this[1].super_TSkillBase.TimerList[0xb] =
- (TSkill *)local_4c[0].ObjectID;
- this[1].super_TSkillBase.TimerList[0xc] =
- (TSkill *)PartnerID;
- *(undefined1 *)
- (this[1].super_TSkillBase.TimerList + 0xd) = 0;
- local_5c.ObjectID = ::NONE.ObjectID;
- bVar2 = (pTVar3->TradeObject).ObjectID !=
- ::NONE.ObjectID;
- if (bVar2) {
- SendTradeOffer((pTVar3->super_TCreature).Connection,
- this->Name,false,local_4c);
- local_4c[0].ObjectID =
- (ulong)this[1].super_TSkillBase.TimerList[0xb];
- SendTradeOffer(this->Connection,this->Name,true,
- local_4c);
- local_4c[0].ObjectID =
- (pTVar3->TradeObject).ObjectID;
- Name = (pTVar3->super_TCreature).Name;
- Connection = this->Connection;
- }
- else {
- Name = this->Name;
- SendMessage((pTVar3->super_TCreature).Connection,
- 0x16,"%s wants to trade with you.",Name)
- ;
- local_4c[0].ObjectID =
- (ulong)this[1].super_TSkillBase.TimerList[0xb];
- Connection = this->Connection;
- }
- SendTradeOffer(Connection,Name,!bVar2,local_4c);
- return;
- }
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 0x36;
- }
- else {
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 7;
- }
- }
- else {
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 5;
- }
- }
- else {
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 0x37;
- }
- }
- else {
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 0x35;
- }
- }
- }
- goto LAB_080c03d9;
- }
- }
-LAB_080c03c7:
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 1;
- }
- else {
- error(&DAT_08106e40);
- puVar5 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar5 = 0xffffffff;
- }
-LAB_080c03d9:
- // WARNING: Subroutine does not return
- __cxa_throw(puVar5,&RESULT::typeinfo,0);
-}
-
-
-
-// DWARF original prototype: void Use(TCreature * this, Object * Obj1, Object * Obj2, uchar Dummy)
-
-void __thiscall TCreature::Use(TCreature *this,Object *Obj1,Object *Obj2,uchar Dummy)
-
-{
- int iVar1;
- bool bVar2;
- undefined4 *puVar3;
- ulong uVar4;
- int *piVar5;
- int Delay;
- bool bVar6;
- int iStack_70;
- uchar Dummy_local;
- int local_6c;
- int local_68;
- int x;
- int y;
- int z;
- Object local_4c [4];
- ulong local_3c;
- Object local_2c [7];
-
- // try { // try from 080c0652 to 080c098c has its CatchHandler @ 080c09a0
- bVar2 = Object::exists(Obj1);
- if (bVar2) {
- bVar2 = false;
- local_2c[0].ObjectID = ::NONE.ObjectID;
- local_3c = ::NONE.ObjectID;
- if ((Obj2->ObjectID != ::NONE.ObjectID) && (bVar6 = Object::exists(Obj2), !bVar6)) {
- bVar2 = true;
- }
- if (!bVar2) {
- bVar2 = false;
- local_3c = ::NONE.ObjectID;
- local_2c[0].ObjectID = ::NONE.ObjectID;
- local_4c[0] = (Object)Obj2->ObjectID;
- if (local_4c[0].ObjectID != ::NONE.ObjectID) {
- Object::getObjectType(local_2c);
- bVar6 = ObjectType::getFlag((ObjectType *)local_2c,DISTUSE);
- if (!bVar6) {
- local_2c[0] = (Object)Obj2->ObjectID;
- bVar6 = ObjectInRange(this->ID,local_2c,1);
- if (!bVar6) {
- bVar2 = true;
- }
- }
- local_4c[0] = (Object)Obj2->ObjectID;
- }
- if (bVar2) {
- GetObjectCoordinates(local_4c,&local_68,&x,&y);
- bVar2 = ToDoClear(this);
- if ((bVar2) && (this->Type == PLAYER)) {
- SendSnapback(this->Connection);
- }
- local_4c[0] = (Object)Obj1->ObjectID;
- uVar4 = GetObjectCreatureID(local_4c);
- if (uVar4 != this->ID) {
- z = Obj1->ObjectID;
- ToDoMove(this,(Object *)&z,0xffff,0,0,'\x01');
- }
- ToDoGo(this,local_68,x,y,false,0x7fffffff);
- z = Obj2->ObjectID;
- local_4c[0] = (Object)Obj1->ObjectID;
- ToDoUse(this,'\x02',local_4c,(Object *)&z);
- if (this->NrToDo != 0) {
- this->LockToDo = true;
- this->ActToDo = 0;
- local_6c = CalculateDelay(this);
- iStack_70 = 1;
- piVar5 = &stack0xffffff90;
- if (0 < local_6c) {
- piVar5 = &local_6c;
- }
- iVar1 = *piVar5;
- priority_queue<>::insert(&ToDoQueue);
- this->NextWakeup = iVar1 + ServerMilliseconds;
- }
- return;
- }
- bVar2 = false;
- z = ::NONE.ObjectID;
- bVar6 = local_4c[0].ObjectID != ::NONE.ObjectID;
- local_4c[0].ObjectID = ::NONE.ObjectID;
- if (bVar6) {
- Object::getObjectType(local_4c);
- bVar6 = ObjectType::getFlag((ObjectType *)local_4c,DISTUSE);
- if (bVar6) {
- local_4c[0] = (Object)Obj2->ObjectID;
- bVar6 = ObjectInRange(this->ID,local_4c,7);
- if (!bVar6) {
- bVar2 = true;
- }
- }
- }
- if (!bVar2) {
- z = Obj2->ObjectID;
- if (z != ::NONE.ObjectID) {
- this->EarliestMultiuseTime = ServerMilliseconds + 1000;
- z = Obj2->ObjectID;
- }
- local_4c[0] = (Object)Obj1->ObjectID;
- ::Use(this->ID,local_4c,(Object *)&z,Dummy);
- return;
- }
- puVar3 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar3 = 5;
- goto LAB_080c0733;
- }
- }
- puVar3 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar3 = 0x1f;
-LAB_080c0733:
- // WARNING: Subroutine does not return
- __cxa_throw(puVar3,&RESULT::typeinfo,0);
-}
-
-
-
-// DWARF original prototype: void Turn(TCreature * this, Object * Obj)
-
-void __thiscall TCreature::Turn(TCreature *this,Object *Obj)
-
-{
- bool bVar1;
- undefined4 *puVar2;
- Object local_1c [5];
-
- // try { // try from 080c09cf to 080c0a25 has its CatchHandler @ 080c0a26
- bVar1 = Object::exists(Obj);
- if (bVar1) {
- local_1c[0] = (Object)Obj->ObjectID;
- ::Turn(this->ID,local_1c);
- return;
- }
- puVar2 = (undefined4 *)__cxa_allocate_exception(4);
- *puVar2 = 0x1f;
- // WARNING: Subroutine does not return
- __cxa_throw(puVar2,&RESULT::typeinfo,0);
-}
-
-// DWARF original prototype: void NotifyGo(TCreature * this)
-
-void __thiscall TCreature::NotifyGo(TCreature *this)
-
-{
- int iVar1;
- int iVar2;
- TConnection *Connection;
- bool bVar3;
- bool bVar4;
- bool bVar5;
- int Waypoints;
- int iVar6;
- CreatureType CVar7;
- ulong uVar8;
- int iVar9;
- TPlayer *pTVar10;
- int dx;
- uint uVar11;
- TCreature *Window;
- int dy;
- uint uVar12;
- TCreature *Obj_00;
- TCreature *Con_00;
- TPlayer *Partner;
- bool DiagonalMove;
- int dz;
- int local_68;
- int x;
- int y;
- int z;
- Object Obj;
- Object local_4c [4];
- Object local_3c [4];
- Object local_2c;
- Object Con;
-
- local_2c.ObjectID = (this->CrObject).ObjectID;
- GetObjectCoordinates(&local_2c,&local_68,&x,&y);
- iVar9 = this->posx;
- uVar11 = local_68 - iVar9;
- iVar1 = this->posy;
- uVar12 = x - iVar1;
- iVar2 = this->posz;
- bVar3 = false;
- iVar6 = y - iVar2;
- if (((iVar6 == 0) && (uVar11 != 0)) && (uVar12 != 0)) {
- bVar3 = true;
- }
- MoveChainCreature(this,local_68,x);
- CVar7 = this->Type;
- if ((CVar7 == PLAYER) && (Connection = this->Connection, Connection != (TConnection *)0x0)) {
- if (((iVar6 + 1U < 3) && (uVar11 + 1 < 3)) && (uVar12 + 1 < 3)) {
- if (iVar6 == 1) {
- this->posz = this->posz + 1;
- this->posx = this->posx + -1;
- this->posy = this->posy + -1;
- SendFloors(Connection,false);
- uVar11 = uVar11 + 1;
- uVar12 = uVar12 + 1;
- }
- if (iVar6 == -1) {
- this->posz = this->posz + -1;
- uVar11 = uVar11 - 1;
- this->posx = this->posx + 1;
- uVar12 = uVar12 - 1;
- this->posy = this->posy + 1;
- SendFloors(this->Connection,true);
- }
- for (; 0 < (int)uVar11; uVar11 = uVar11 - 1) {
- this->posx = this->posx + 1;
- SendRow(this->Connection,1);
- }
- for (; (int)uVar11 < 0; uVar11 = uVar11 + 1) {
- this->posx = this->posx + -1;
- SendRow(this->Connection,3);
- }
- for (; 0 < (int)uVar12; uVar12 = uVar12 - 1) {
- this->posy = this->posy + 1;
- SendRow(this->Connection,2);
- }
- for (; (int)uVar12 < 0; uVar12 = uVar12 + 1) {
- this->posy = this->posy + -1;
- SendRow(this->Connection,0);
- }
- }
- else {
- this->posx = this->posx + uVar11;
- this->posy = this->posy + uVar12;
- this->posz = this->posz + iVar6;
- SendFullScreen(Connection);
- }
- CVar7 = this->Type;
- }
- else {
- this->posx = this->posx + uVar11;
- this->posy = this->posy + uVar12;
- this->posz = this->posz + iVar6;
- }
- if (CVar7 != PLAYER) goto LAB_080c0c2d;
- Window = (TCreature *)0x0;
- do {
- Obj_00 = this;
- Con_00 = Window;
- TPlayer::GetOpenContainer((TPlayer *)&local_2c,(int)this);
- local_3c[0].ObjectID = ::NONE.ObjectID;
- if (local_2c.ObjectID != ::NONE.ObjectID) {
- bVar4 = Object::exists(&local_2c);
- if (bVar4) {
- Con_00 = (TCreature *)0x1;
- Obj_00 = (TCreature *)local_3c;
- local_3c[0].ObjectID = local_2c.ObjectID;
- bVar4 = ObjectAccessible(this->ID,(Object *)Obj_00,1);
- if (bVar4) goto LAB_080c0c07;
- local_4c[0] = (Object)::NONE.ObjectID;
- Con_00 = (TCreature *)local_4c;
- }
- else {
- error("TCreature::NotifyGo: OpenContainer existiert nicht. (%s, [%d,%d,%d]->[%d,%d,%d])\n"
- ,this->Name,iVar9,iVar1,iVar2,this->posx,this->posy,this->posz);
- local_3c[0].ObjectID = ::NONE.ObjectID;
- Con_00 = (TCreature *)local_3c;
- }
- TPlayer::SetOpenContainer((TPlayer *)this,(int)Window,(Object *)Con_00);
- Obj_00 = Window;
- SendCloseContainer(this->Connection,(int)Window);
- }
-LAB_080c0c07:
- Window = (TCreature *)((int)&Window->_vptr_TCreature + 1);
- } while ((int)Window < 0x10);
- local_4c[0].ObjectID = ::NONE.ObjectID;
- local_3c[0].ObjectID = ::NONE.ObjectID;
- if (this[1].super_TSkillBase.TimerList[0xb] == (TSkill *)::NONE.ObjectID) goto LAB_080c0c2d;
- pTVar10 = GetPlayer((ulong)this[1].super_TSkillBase.TimerList[0xc]);
- bVar4 = Object::exists((Object *)(this[1].super_TSkillBase.TimerList + 0xb));
- if (!bVar4) {
- error("TCreature::NotifyGo: Handelsobjekt existiert nicht mehr.\n",Obj_00,Con_00);
- error(&DAT_081072f3,this->Name,this->posx,this->posy,this->posz);
- if (pTVar10 != (TPlayer *)0x0) {
- error("# Partner %s an [%d,%d,%d]\n",(pTVar10->super_TCreature).Name,
- (pTVar10->super_TCreature).posx,(pTVar10->super_TCreature).posy,
- (pTVar10->super_TCreature).posz);
- }
- }
- bVar4 = false;
- if (pTVar10 == (TPlayer *)0x0) {
-LAB_080c0dba:
- bVar4 = true;
- }
- else {
- local_3c[0].ObjectID = (ulong)this[1].super_TSkillBase.TimerList[0xb];
- bVar5 = ObjectAccessible(this->ID,local_3c,1);
- if (!bVar5) goto LAB_080c0dba;
- local_2c.ObjectID = (pTVar10->super_TCreature).CrObject.ObjectID;
- z = (this->CrObject).ObjectID;
- iVar9 = ObjectDistance((Object *)&z,&local_2c);
- if ((2 < iVar9) ||
- (bVar5 = ThrowPossible(this->posx,this->posy,this->posz,(pTVar10->super_TCreature).posx,
- (pTVar10->super_TCreature).posy,(pTVar10->super_TCreature).posz,0)
- , !bVar5)) goto LAB_080c0dba;
- }
- if (bVar4) {
- SendCloseTrade(this->Connection);
- SendMessage(this->Connection,0x17,"Trade cancelled.");
- TPlayer::RejectTrade((TPlayer *)this);
- }
-LAB_080c0c2d:
- GetFirstObject();
- while( true ) {
- Object::getObjectType(local_4c);
- bVar4 = ObjectType::getFlag((ObjectType *)local_4c,BANK);
- if (bVar4) break;
- local_4c[0].ObjectID = ::NONE.ObjectID;
- local_3c[0].ObjectID = ::NONE.ObjectID;
- if (z == ::NONE.ObjectID) break;
- Object::getNextObject(local_3c);
- z = local_3c[0].ObjectID;
- local_4c[0].ObjectID = z;
- }
- local_4c[0] = (Object)::NONE.ObjectID;
- if (z == ::NONE.ObjectID) {
- error("TCreature::NotifyGo: Auf Feld [%d,%d,%d] befindet sich kein Bank.\n",this->posx,
- this->posy,this->posz);
- }
- else {
- Object::getObjectType(local_4c);
- uVar8 = ObjectType::getAttribute((ObjectType *)local_4c,WAYPOINTS);
- if (bVar3) {
- uVar8 = uVar8 * 3;
- }
- iVar9 = GetSpeed(this);
- this->EarliestWalkTime =
- ((Beat + -1 + (int)(uVar8 * 1000) / iVar9) / Beat) * Beat + ServerMilliseconds;
- }
- return;
-}
-
-
-
-// DWARF original prototype: void NotifyTurn(TCreature * this, Object * DestCon)
-
-void __thiscall TCreature::NotifyTurn(TCreature *this,Object *DestCon)
-
-{
- int dy;
- int iVar1;
- int local_28;
- int x;
- int y;
- int z;
-
- z = DestCon->ObjectID;
- GetObjectCoordinates((Object *)&z,&local_28,&x,&y);
- local_28 = local_28 - this->posx;
- iVar1 = x - this->posy;
- if (local_28 < 1) {
- if (local_28 < 0) {
- this->Direction = 3;
- }
- else if (iVar1 < 0) {
- this->Direction = 0;
- }
- else if (x != this->posy && -1 < iVar1) {
- this->Direction = 2;
- }
- }
- else {
- this->Direction = 1;
- }
- return;
-}
-
-
-
-// DWARF original prototype: void NotifyDelete(TCreature * this)
-
-void __thiscall TCreature::NotifyDelete(TCreature *this)
-
-{
- CreatureType CVar1;
-
- if (this->Type == PLAYER) {
- CVar1 = PLAYER;
- if (this->Connection != (TConnection *)0x0) {
- TConnection::Logout(this->Connection,0x1e,true);
- CVar1 = this->Type;
- this->LoggingOut = true;
- }
- if (CVar1 == PLAYER) {
- TPlayer::RejectTrade((TPlayer *)this);
- }
- }
- DeleteChainCreature(this);
- return;
-}
-
-
-
-// DWARF original prototype: void NotifyCreate(TCreature * this)
-
-void __thiscall TCreature::NotifyCreate(TCreature *this)
-
-{
- InsertChainCreature(this,0,0);
- return;
-}
-
-
-
-// DWARF original prototype: void NotifyChangeInventory(TCreature * this)
-
-void __thiscall TCreature::NotifyChangeInventory(TCreature *this)
-
-{
- TSkill *pTVar1;
- anon_union_4_2_730cd3ca_for_TOutfit_2 aVar2;
- bool bVar3;
- bool bVar4;
- int i;
- int iVar5;
- int iVar6;
- ulong uVar7;
- ulong uVar8;
- bool SkillsChanged;
- int i_1;
- int b;
- ulong uVar9;
- int SkillNr;
- ulong local_ac;
- int iStack_9c;
- int NewDelta [25];
- ulong local_2c;
- Object Obj;
-
- local_2c = ::NONE.ObjectID;
- if ((this->CrObject).ObjectID != ::NONE.ObjectID) {
- bVar3 = Object::exists(&this->CrObject);
- if (bVar3) {
- TCombat::CheckCombatValues(&this->Combat);
- if (this->Type == PLAYER) {
- iVar5 = 0;
- do {
- NewDelta[iVar5 + -1] = 0;
- iVar5 = iVar5 + 1;
- } while (iVar5 < 0x19);
- uVar9 = 1;
- do {
- bVar3 = false;
- GetBodyObject((ulong)&local_2c,this->ID);
- local_ac = ::NONE.ObjectID;
- if (local_2c == ::NONE.ObjectID) {
-LAB_080c12f2:
- bVar3 = true;
- }
- else {
- Object::getObjectType((Object *)&SkillNr);
- bVar4 = ObjectType::getFlag((ObjectType *)&SkillNr,SKILLBOOST);
- if (!bVar4) goto LAB_080c12f2;
- }
- if (!bVar3) {
- Object::getObjectType((Object *)&SkillNr);
- bVar3 = ObjectType::getFlag((ObjectType *)&SkillNr,CLOTHES);
- if (bVar3) {
- Object::getObjectType((Object *)&SkillNr);
- uVar7 = ObjectType::getAttribute((ObjectType *)&SkillNr,BODYPOSITION);
- if (uVar7 == uVar9) {
- Object::getObjectType((Object *)&SkillNr);
- uVar7 = ObjectType::getAttribute((ObjectType *)&SkillNr,SKILLNUMBER)
- ;
- if ((int)uVar7 < 0x19) {
- Object::getObjectType((Object *)&SkillNr);
- uVar8 = ObjectType::getAttribute
- ((ObjectType *)&SkillNr,SKILLMODIFICATION);
- if (0x7fff < (int)uVar8) {
- uVar8 = uVar8 - 0x10000;
- }
- NewDelta[uVar7 - 1] = NewDelta[uVar7 - 1] + uVar8;
- }
- else {
- Object::getObjectType((Object *)&SkillNr);
- error(&DAT_08107080,SkillNr,uVar7);
- }
- }
- }
- else {
- Object::getObjectType((Object *)&SkillNr);
- error("TCreature::NotifyChangeInventory: Objekt %d hat SKILLBOOST, aber nicht CLOTHES.\n"
- ,SkillNr);
- }
- }
- uVar9 = uVar9 + 1;
- } while ((int)uVar9 < 0xb);
- bVar3 = false;
- iVar5 = 0;
- do {
- pTVar1 = (this->super_TSkillBase).Skills[iVar5];
- if (pTVar1->DAct != NewDelta[iVar5 + -1]) {
- pTVar1->DAct = NewDelta[iVar5 + -1];
- if (iVar5 == 4) {
- AnnounceChangedCreature(this->ID,4);
- }
- if (iVar5 == 0x10) {
- if (NewDelta[0xf] < 1) {
- pTVar1 = (this->super_TSkillBase).Skills[0x10];
- iVar6 = (*pTVar1->_vptr_TSkill[0xd])(pTVar1);
- if (iVar6 == 0) {
- aVar2 = (this->OrgOutfit).field_1;
- (this->Outfit).OutfitID = (this->OrgOutfit).OutfitID;
- (this->Outfit).field_1 = aVar2;
- }
- }
- else {
- bVar3 = false;
- if (((this->Outfit).OutfitID == 0) &&
- ((this->Outfit).field_1.ObjectType == 0)) {
- bVar3 = true;
- }
- if ((!bVar3) &&
- (pTVar1 = (this->super_TSkillBase).Skills[0x10],
- iVar6 = (*pTVar1->_vptr_TSkill[0xd])(pTVar1), iVar6 != 0)) {
- TSkillBase::SetTimer(&this->super_TSkillBase);
- }
- (this->Outfit).OutfitID = 0;
- (this->Outfit).field_1.ObjectType = 0;
- }
- AnnounceChangedCreature(this->ID,3);
- }
- bVar3 = true;
- }
- iVar5 = iVar5 + 1;
- } while (iVar5 < 0x19);
- if (bVar3) {
- SendPlayerSkills(this->Connection);
- TPlayer::CheckState((TPlayer *)this);
- }
- SendPlayerData(this->Connection);
- }
- }
- else {
- error("TCreature::NotifyChangeInventory: Kreatur-Objekt existiert nicht.\n");
- error("# Kreatur: %s, Position: %d/%d/%d.\n",this->Name,this->posx,this->posy,this->posz
- );
- }
- }
- return;
-}
-
// WARNING: Unknown calling convention -- yet parameter storage is locked
void _GLOBAL__I__ZN9TShortwayC2EP9TCreatureii(void)
|
