From 05ec30b99472e8c17cd33c29d0e7859e02dc9fc8 Mon Sep 17 00:00:00 2001 From: fusion32 Date: Thu, 12 Jun 2025 02:09:27 -0300 Subject: more work on `operate.cc` --- reference/game.c | 330 ------------------------------------------------------- 1 file changed, 330 deletions(-) (limited to 'reference/game.c') diff --git a/reference/game.c b/reference/game.c index 2a7f774..3686e32 100644 --- a/reference/game.c +++ b/reference/game.c @@ -18375,336 +18375,6 @@ void __static_initialization_and_destruction_0(int __initialize_p,int __priority return; } -void AnnounceGraphicalEffect(int x,int y,int z,int Type) - -{ - TConnection *pTVar1; - bool bVar2; - ulong ID; - ulong CharacterID; - TPlayer *pTVar3; - int x_00; - TPlayer *pl; - undefined1 local_4c [4]; - TFindCreatures Search; - - bVar2 = IsOnMap(x,y,z); - if (bVar2) { - TFindCreatures::TFindCreatures((TFindCreatures *)local_4c,0x10,0xe,x,y,1); - while( true ) { - CharacterID = TFindCreatures::getNext((TFindCreatures *)local_4c); - if (CharacterID == 0) break; - pTVar3 = GetPlayer(CharacterID); - if ((pTVar3 != (TPlayer *)0x0) && - (pTVar1 = (pTVar3->super_TCreature).Connection, pTVar1 != (TConnection *)0x0)) { - bVar2 = TConnection::IsVisible(pTVar1,x,y,z); - if (bVar2) { - pTVar1 = (pTVar3->super_TCreature).Connection; - SendGraphicalEffect(pTVar1,x_00,(int)pTVar1,x,y); - } - } - } - } - return; -} - - - -void AnnounceTextualEffect(int x,int y,int z,int Color,char *Text) - -{ - TConnection *this; - bool bVar1; - ulong ID; - ulong CharacterID; - TPlayer *pTVar2; - TPlayer *pl; - undefined1 local_4c [4]; - TFindCreatures Search; - - bVar1 = IsOnMap(x,y,z); - if (bVar1) { - TFindCreatures::TFindCreatures((TFindCreatures *)local_4c,0x10,0xe,x,y,1); - while( true ) { - CharacterID = TFindCreatures::getNext((TFindCreatures *)local_4c); - if (CharacterID == 0) break; - pTVar2 = GetPlayer(CharacterID); - if ((pTVar2 != (TPlayer *)0x0) && - (this = (pTVar2->super_TCreature).Connection, this != (TConnection *)0x0)) { - bVar1 = TConnection::IsVisible(this,x,y,z); - if (bVar1) { - SendTextualEffect((pTVar2->super_TCreature).Connection,x,y,z,Color,Text); - } - } - } - } - return; -} - - - -void AnnounceMissile(int sx,int sy,int sz,int zx,int zy,int zz,int Type) - -{ - TConnection *pTVar1; - bool bVar2; - ulong ID; - ulong CharacterID; - TPlayer *pTVar3; - int iVar4; - int extraout_EDX; - int extraout_EDX_00; - TPlayer *pl; - int iVar5; - int iVar6; - undefined1 local_4c [4]; - TFindCreatures Search; - - bVar2 = IsOnMap(sx,sy,sz); - if (bVar2) { - bVar2 = IsOnMap(zx,zy,zz); - if (bVar2) { - iVar5 = sy - zy; - iVar4 = -iVar5; - if (-1 < iVar5) { - iVar4 = iVar5; - } - iVar6 = sx - zx; - iVar5 = -iVar6; - if (-1 < iVar6) { - iVar5 = iVar6; - } - TFindCreatures::TFindCreatures - ((TFindCreatures *)local_4c,iVar5 / 2 + 0x11,iVar4 / 2 + 0xf,(sx + zx) / 2, - (zy + sy) / 2,1); -LAB_0808ec90: - CharacterID = TFindCreatures::getNext((TFindCreatures *)local_4c); - if (CharacterID != 0) { - pTVar3 = GetPlayer(CharacterID); - if ((pTVar3 != (TPlayer *)0x0) && - (pTVar1 = (pTVar3->super_TCreature).Connection, pTVar1 != (TConnection *)0x0)) { - bVar2 = TConnection::IsVisible(pTVar1,sx,sy,sz); - iVar4 = extraout_EDX; - if (!bVar2) { - bVar2 = TConnection::IsVisible - ((pTVar3->super_TCreature).Connection,zx,zy,zz); - iVar4 = extraout_EDX_00; - if (!bVar2) goto LAB_0808ec90; - } - pTVar1 = (pTVar3->super_TCreature).Connection; - SendMissileEffect(pTVar1,iVar4,(int)pTVar1,sx,sy,sz,zx,zy); - } - goto LAB_0808ec90; - } - } - } - return; -} - - - -void CheckTopMoveObject(ulong CreatureID,Object *Obj,Object *Ignore) - -{ - bool bVar1; - bool bVar2; - ulong uVar3; - undefined4 *puVar4; - Object *pOVar5; - Object local_7c [4]; - Object local_6c [4]; - Object local_5c [4]; - Object local_4c; - Object Help; - Object local_3c; - Object Best; - Object local_2c; - Object Con; - - // try { // try from 0808ed5b to 0808efdb has its CatchHandler @ 0808eff3 - bVar1 = Object::exists(Obj); - if (!bVar1) { - error("CheckTopMoveObject: Objekt existiert nicht.\n"); - puVar4 = (undefined4 *)__cxa_allocate_exception(4); - *puVar4 = 0xffffffff; -LAB_0808eeb3: - // WARNING: Subroutine does not return - __cxa_throw(puVar4,&RESULT::typeinfo,0); - } - if ((CreatureID != 0) && (bVar1 = IsCreaturePlayer(CreatureID), bVar1)) { - Object::getContainer(&local_2c); - Object::getObjectType(&local_3c); - if ((local_3c.ObjectID == 0) && - ((Object::getObjectType(&local_3c), local_3c.ObjectID != 99 || - (uVar3 = Object::getCreatureID(Obj), uVar3 != CreatureID)))) { - pOVar5 = local_5c; - local_3c.ObjectID = NONE.ObjectID; - local_5c[0].ObjectID = local_2c.ObjectID; - GetFirstContainerObject(&local_4c); - local_5c[0].ObjectID = NONE.ObjectID; - if (local_4c.ObjectID != NONE.ObjectID) { - do { - local_6c[0] = (Object)Ignore->ObjectID; - local_5c[0].ObjectID = NONE.ObjectID; - if (local_4c.ObjectID != local_6c[0].ObjectID) { - local_6c[0].ObjectID = NONE.ObjectID; - bVar1 = false; - if (local_3c.ObjectID == NONE.ObjectID) { -LAB_0808ee2b: - bVar1 = true; - } - else { - Object::getObjectType(local_5c); - bVar2 = ObjectType::getFlag((ObjectType *)local_5c,UNMOVE); - if ((!bVar2) && - ((Object::getObjectType(local_5c), local_5c[0].ObjectID != 99 || - (Object::getObjectType(local_5c), local_5c[0].ObjectID != 99)))) - goto LAB_0808ee2b; - } - if (bVar1) { - local_7c[0].ObjectID = local_4c.ObjectID; - local_3c.ObjectID = local_4c.ObjectID; - local_5c[0].ObjectID = local_4c.ObjectID; - } - Object::getObjectType(local_7c); - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,BANK); - if (!bVar1) { - Object::getObjectType(local_7c); - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,CLIP); - if (!bVar1) { - Object::getObjectType(local_7c); - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,BOTTOM); - if (!bVar1) { - Object::getObjectType(local_7c); - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,TOP); - if ((!bVar1) && - (pOVar5 = &local_4c, Object::getObjectType(local_7c), - local_7c[0].ObjectID != 99)) break; - } - } - } - } - pOVar5 = &local_4c; - Object::getNextObject(local_6c); - local_7c[0].ObjectID = local_6c[0].ObjectID; - local_4c.ObjectID = local_6c[0].ObjectID; - local_5c[0].ObjectID = NONE.ObjectID; - } while (local_6c[0].ObjectID != NONE.ObjectID); - } - local_7c[0].ObjectID = local_3c.ObjectID; - local_6c[0].ObjectID = local_3c.ObjectID; - if (Obj->ObjectID != local_3c.ObjectID) { - puVar4 = (undefined4 *)__cxa_allocate_exception(4,pOVar5); - *puVar4 = 1; - goto LAB_0808eeb3; - } - } - } - return; -} - - - -void CheckTopUseObject(ulong CreatureID,Object *Obj) - -{ - bool bVar1; - bool bVar2; - undefined4 *puVar3; - Object *pOVar4; - Object local_7c [4]; - Object local_6c [4]; - Object local_5c [4]; - Object local_4c; - Object Help; - Object local_3c; - Object Best; - Object local_2c; - Object Con; - - // try { // try from 0808f02b to 0808f27b has its CatchHandler @ 0808f293 - bVar1 = Object::exists(Obj); - if (!bVar1) { - error("CheckTopUseObject: Objekt existiert nicht.\n"); - puVar3 = (undefined4 *)__cxa_allocate_exception(4); - *puVar3 = 0xffffffff; -LAB_0808f19d: - // WARNING: Subroutine does not return - __cxa_throw(puVar3,&RESULT::typeinfo,0); - } - if ((CreatureID != 0) && (bVar1 = IsCreaturePlayer(CreatureID), bVar1)) { - Object::getContainer(&local_2c); - Object::getObjectType(&local_3c); - if (local_3c.ObjectID == 0) { - pOVar4 = local_5c; - local_3c.ObjectID = NONE.ObjectID; - local_5c[0].ObjectID = local_2c.ObjectID; - GetFirstContainerObject(&local_4c); - local_5c[0].ObjectID = NONE.ObjectID; - if (local_4c.ObjectID != NONE.ObjectID) { - do { - local_6c[0].ObjectID = NONE.ObjectID; - bVar1 = false; - local_5c[0].ObjectID = NONE.ObjectID; - if (local_3c.ObjectID == NONE.ObjectID) { -LAB_0808f0cd: - bVar1 = true; - } - else { - Object::getObjectType(local_5c); - if (local_5c[0].ObjectID != 99) { - Object::getObjectType(local_5c); - bVar2 = ObjectType::getFlag((ObjectType *)local_5c,LIQUIDPOOL); - if (!bVar2) goto LAB_0808f0cd; - } - } - if (bVar1) { - local_7c[0].ObjectID = local_4c.ObjectID; - local_3c.ObjectID = local_4c.ObjectID; - local_5c[0].ObjectID = local_4c.ObjectID; - } - Object::getObjectType(local_7c); - pOVar4 = (Object *)0x9; - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,FORCEUSE); - if (bVar1) break; - Object::getObjectType(local_7c); - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,BANK); - if (!bVar1) { - Object::getObjectType(local_7c); - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,CLIP); - if (!bVar1) { - Object::getObjectType(local_7c); - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,BOTTOM); - if (!bVar1) { - Object::getObjectType(local_7c); - bVar1 = ObjectType::getFlag((ObjectType *)local_7c,TOP); - if ((!bVar1) && - (pOVar4 = &local_4c, Object::getObjectType(local_7c), - local_7c[0].ObjectID != 99)) break; - } - } - } - pOVar4 = &local_4c; - Object::getNextObject(local_6c); - local_7c[0].ObjectID = local_6c[0].ObjectID; - local_4c.ObjectID = local_6c[0].ObjectID; - local_5c[0].ObjectID = NONE.ObjectID; - } while (local_6c[0].ObjectID != NONE.ObjectID); - } - local_7c[0].ObjectID = local_3c.ObjectID; - local_6c[0].ObjectID = local_3c.ObjectID; - if (Obj->ObjectID != local_3c.ObjectID) { - puVar3 = (undefined4 *)__cxa_allocate_exception(4,pOVar4); - *puVar3 = 1; - goto LAB_0808f19d; - } - } - } - return; -} - - - void CheckTopMultiuseObject(ulong CreatureID,Object *Obj) { -- cgit v1.2.3