DoorOpen Bug

A forum for reporting bugs NOT related to custom plugins.

Moderator: MacroQuest Developers

wolfbaby
a lesser mummy
a lesser mummy
Posts: 45
Joined: Mon Sep 06, 2004 5:34 am

DoorOpen Bug

Post by wolfbaby » Thu Dec 23, 2004 6:50 am

/if (${String[${Switch.Open}].Find["FALSE"]}>0)
not work now,
${Switch.Open} return TRUE of NULL ,not FALSE

and they always return NULL.

wolfbaby
a lesser mummy
a lesser mummy
Posts: 45
Joined: Mon Sep 06, 2004 5:34 am

Post by wolfbaby » Thu Dec 23, 2004 7:04 am

none :oops:

just opendoor doesn't work

User avatar
Cr4zyb4rd
Plugins Czar
Posts: 1449
Joined: Tue Jul 20, 2004 11:46 am

Post by Cr4zyb4rd » Thu Dec 23, 2004 8:28 am

What's irksome is that I suspect there's a real bug here, but in the mass of pronouns with no referent and bare terms just hanging in space, I can't parse out what it might be. I guess I get to stumble around playing with doors and typing in pseudo-random /echo statements until i find it. :/

User avatar
fice
a hill giant
a hill giant
Posts: 187
Joined: Thu Jul 17, 2003 3:28 pm

Post by fice » Thu Dec 23, 2004 10:30 am

fucking prick!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

User avatar
Cr4zyb4rd
Plugins Czar
Posts: 1449
Joined: Tue Jul 20, 2004 11:46 am

Post by Cr4zyb4rd » Thu Dec 23, 2004 12:27 pm

wolfbaby's issue appears to be a problem in the door struct. I know some people mentioned problems with it after the patch, but I thought they'd been resolved. I'm not even sure the struct's the right size, due to the way door pointers are always yanked out of an array, but I'll take a peek at it if I get the chance and nobody beats me to it.

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Post by Amadeus » Thu Dec 23, 2004 1:58 pm

This should fix it ...let me know.

Code: Select all

typedef struct _DOOR { 
/*0x00*/   BYTE Unknown0x00; 
/*0x01*/   BYTE ID; 
/*0x02*/   CHAR Name[0x0b]; 
/*0x0d*/   BYTE Unknown0x0d[0x17]; 
/*0x24*/   FLOAT DefaultY; 
/*0x28*/   FLOAT DefaultX; 
/*0x2c*/   FLOAT DefaultZ; 
/*0x30*/   FLOAT DefaultHeading; 
/*0x34*/   FLOAT DoorAngle; 
/*0x38*/   FLOAT Y; 
/*0x3c*/   FLOAT X; 
/*0x40*/   FLOAT Z; 
/*0x44*/   FLOAT Heading; 
/*0x48*/   BYTE Unknown0x48[0x3c]; 
/*0x84*/   PEQSWITCH pSwitch; // (class EQSwitch *) 
/*0x88*/ 
} DOOR, *PDOOR; 

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Post by Amadeus » Thu Dec 23, 2004 2:01 pm

On a related note (however, not a part of the bug we're seeing here), EQSWITCH struct is a mess.

We don't use the EQSWITCH struct for much of anything, so it's not that important, but I do hate to have something completely wrong in the source, so here is an updated version. It definately has a lot of unknowns ..hehe

Code: Select all

typedef struct _EQSWITCH {
/*0x00*/	DWORD		Unknown0x0[0x2];
/*0x08*/	DWORD		UnknownData0x08;
/*0x0c*/	DWORD		UnknownData0x0c;
/*0x10*/	DWORD		Unknown0x10[0x2];
/*0x18*/	DWORD		UnknownData0x18;
/*0x1c*/	DWORD		Unknown0x1c;
/*0x20*/	DWORD		UnknownData0x20;
/*0x24*/	FLOAT		Y;
/*0x28*/	FLOAT		X;
/*0x2c*/	FLOAT		Z;
/*0x30*/	BYTE		Unknown0x30[0x58]; //A lot of data here.
/*0x88*/	FLOAT		Y2;
/*0x8c*/	FLOAT		X2;
/*0x90*/	FLOAT		Z2;
/*0x94*/	DWORD		Unknown0x94;
/*0x98*/	FLOAT		Heading;
/*0x9c		Data Continues... */
} EQSWITCH, *PEQSWITCH;

User avatar
Cr4zyb4rd
Plugins Czar
Posts: 1449
Joined: Tue Jul 20, 2004 11:46 am

Post by Cr4zyb4rd » Thu Dec 23, 2004 7:42 pm

You're a braver man than I for even touching that switch struct. The way we handle those pointers is some of the wackiest code in all of the MQ2 source.