Is anyone writing a new editor?

Please post here for questions and discussion about scenario design and the game editor for WITP.

Moderators: wdolson, Don Bowen, mogami

User avatar
Oznoyng
Posts: 818
Joined: Thu Apr 15, 2004 10:05 pm
Location: Mars

Is anyone writing a new editor?

Post by Oznoyng »

I have considered writing one, but I see no sense in duplicating effort.
"There is no Black or White, only shades of Grey."
"If you aren't a part of the solution, you're a part of the problem."
User avatar
Arkady
Posts: 1261
Joined: Fri May 31, 2002 1:37 pm
Location: 27th Penal Battalion
Contact:

RE: Is anyone writing a new editor?

Post by Arkady »

I want to try it, not started yet

Now I'm finishing CSV Export utility, it's almost ready but it need some final polish for better and user friendly interface.

I'm not sure about new editor, there are some hidden values in database files and I'm don't know their puprpose, need to know if it's just some garbage or what...

If you want start , go ahead...ring is free [:D]

Arkady
Image
User avatar
Apollo11
Posts: 25350
Joined: Thu Jun 07, 2001 8:00 am
Location: Zagreb, Croatia
Contact:

RE: Is anyone writing a new editor?

Post by Apollo11 »

Hi all,

Have you guys looked at utility for CSV database dump that "michaelm" wrote?


Leo "Apollo11"
Image

Prior Preparation & Planning Prevents Pathetically Poor Performance!

A & B: WitW, WitE, WbtS, GGWaW, GGWaW2-AWD, HttR, CotA, BftB, CF
P: UV, WitP, WitP-AE
User avatar
Oznoyng
Posts: 818
Joined: Thu Apr 15, 2004 10:05 pm
Location: Mars

RE: Is anyone writing a new editor?

Post by Oznoyng »

ORIGINAL: Arkady

I want to try it, not started yet

Now I'm finishing CSV Export utility, it's almost ready but it need some final polish for better and user friendly interface.

I'm not sure about new editor, there are some hidden values in database files and I'm don't know their puprpose, need to know if it's just some garbage or what...

If you want start , go ahead...ring is free [:D]

Arkady

I get the impression of two things from looking at the data:

1. The file evolved over time so some of what you see in there is old data
2. There is, for some reason, alot of reserved space.

As I was decoding, I found mutliple areas that could, for instance, have been considered the class id in the ship database. One was one character, the other two. When I looked at the data in the editor, the data clearly corresponded to the 2 character field. I suspect what happened was that they converted data in place and extended sizes. When they did that, they left old data around. At some point in the past (probably carryover from UV), I suspect that upgrade was a single byte field. They changed it to two bytes, changed the offset for the data within the file, and left old data in the old place to rot. I've found this to be true with a couple different fields.

I also found lots of data areas that were one very large collection of zeros. Checking along breaks between known data areas, I found no rhyme or reason to any of it. It is possible that it is tied up somehow with the scenario editor, but the way the design looks so far, I am more inclined to think the extra data to be a combination of reserved areas and trash. My exports of info have focused entirely on the database, so I might find something as I decode the scenario that suggests the purpose of those other areas.
"There is no Black or White, only shades of Grey."
"If you aren't a part of the solution, you're a part of the problem."
User avatar
Mike Wood
Posts: 1424
Joined: Wed Mar 29, 2000 4:00 pm
Location: Oakland, California
Contact:

RE: Is anyone writing a new editor?

Post by Mike Wood »

Hello...

Would the data base structures from the editor code be of any use to any one?

Bye...

Michael Wood
ORIGINAL: Oznoyng
ORIGINAL: Arkady

I want to try it, not started yet

Now I'm finishing CSV Export utility, it's almost ready but it need some final polish for better and user friendly interface.

I'm not sure about new editor, there are some hidden values in database files and I'm don't know their puprpose, need to know if it's just some garbage or what...

If you want start , go ahead...ring is free [:D]

Arkady

I get the impression of two things from looking at the data:

1. The file evolved over time so some of what you see in there is old data
2. There is, for some reason, alot of reserved space.

As I was decoding, I found mutliple areas that could, for instance, have been considered the class id in the ship database. One was one character, the other two. When I looked at the data in the editor, the data clearly corresponded to the 2 character field. I suspect what happened was that they converted data in place and extended sizes. When they did that, they left old data around. At some point in the past (probably carryover from UV), I suspect that upgrade was a single byte field. They changed it to two bytes, changed the offset for the data within the file, and left old data in the old place to rot. I've found this to be true with a couple different fields.

I also found lots of data areas that were one very large collection of zeros. Checking along breaks between known data areas, I found no rhyme or reason to any of it. It is possible that it is tied up somehow with the scenario editor, but the way the design looks so far, I am more inclined to think the extra data to be a combination of reserved areas and trash. My exports of info have focused entirely on the database, so I might find something as I decode the scenario that suggests the purpose of those other areas.
User avatar
Apollo11
Posts: 25350
Joined: Thu Jun 07, 2001 8:00 am
Location: Zagreb, Croatia
Contact:

RE: Is anyone writing a new editor?

Post by Apollo11 »

Hi all,
ORIGINAL: Mike Wood

Hello...

Would the data base structures from the editor code be of any use to any one?

Bye...

Michael Wood

Michael, I think that would help tremendeously to every guy doing exports now and imports in the future (possibly from some sort of our own community based editor)!

If you can do that it would be _GREAT_ - thank you _IMMENSLY_ again for great help and work !!! [&o][&o][&o]


Leo "Apollo11"
Image

Prior Preparation & Planning Prevents Pathetically Poor Performance!

A & B: WitW, WitE, WbtS, GGWaW, GGWaW2-AWD, HttR, CotA, BftB, CF
P: UV, WitP, WitP-AE
User avatar
Bodhi
Posts: 1267
Joined: Tue Aug 26, 2003 1:36 am
Location: Japan

RE: Is anyone writing a new editor?

Post by Bodhi »

ORIGINAL: Mike Wood

Hello...

Would the data base structures from the editor code be of any use to any one?

Bye...

Michael Wood


You betcha! [8D] Thanks Mike.
Bodhi
User avatar
Oznoyng
Posts: 818
Joined: Thu Apr 15, 2004 10:05 pm
Location: Mars

RE: Is anyone writing a new editor?

Post by Oznoyng »

Lol. Mike, they would be a tremendous help. Can I take it that this means you won't come looking for me with lawyers if I write a new version of the editors?
"There is no Black or White, only shades of Grey."
"If you aren't a part of the solution, you're a part of the problem."
User avatar
Mike Wood
Posts: 1424
Joined: Wed Mar 29, 2000 4:00 pm
Location: Oakland, California
Contact:

RE: Is anyone writing a new editor?

Post by Mike Wood »

Hello...

I used to write third party editors for games. Fun. I actually expected some to do so for Steel Pathers: World at War as well as War in the Pacific: Struggle Against Japan, which is why I didn't encrypt the data.

But, I never had anyone giving me the structures. I always had to hack into them with my trusty debug.exe. You folk are lucky, lucky, lucky.

Bye...

Michael Wood
ORIGINAL: Oznoyng

Lol. Mike, they would be a tremendous help. Can I take it that this means you won't come looking for me with lawyers if I write a new version of the editors?
User avatar
Mike Wood
Posts: 1424
Joined: Wed Mar 29, 2000 4:00 pm
Location: Oakland, California
Contact:

RE: Is anyone writing a new editor?

Post by Mike Wood »

Hello...

Below are the datastructures for the data base editor.

Bye...

Michael Wood

#define MAX_AIR 250
#define MAX_CLASS 2000
#define MAX_SHIP 10000
#define MAX_GROUP 3000
#define MAX_LOC 4000
#define MAX_DEVICE 1000
#define MAX_PILOT 20000
#define MAX_LEADER 20000

#define MAX_CP 4
#define MAX_TAC 10
#define MAX_PT 12
#define MAX_CT 50
#define MAX_GT 10
#define MAX_MIS 20
#define MAX_DT 30
#define MAX_AL 10
#define MAX_LT 30
#define MAX_RANK 40
#define MAX_NAT 20

#define MAX_FACINGS_SHIP 10
#define MAX_FACINGS_OTHER 13
#define MAX_SHIP_DEVICES 20
#define MAX_OTHER_DEVICES 10
#define MAX_NUMBER_WPNS 100

//------------------------------------------------------------------------------
struct ship
{
char name[MAX_SHIP][20];
unsigned char oldData[MAX_SHIP];
unsigned char expNight[MAX_SHIP];
unsigned char expDay[MAX_SHIP];
short base[MAX_SHIP];
short tf[MAX_SHIP];
unsigned char wpn[MAX_SHIP][20];
unsigned char wpnNum[MAX_SHIP][20];
unsigned char wpnFace[MAX_SHIP][20];
unsigned char wpnAmmo[MAX_SHIP][20];
unsigned char wpnTurret[MAX_SHIP][20];
short wpnArmor[MAX_SHIP][20];
unsigned short fuel[MAX_SHIP];
short carry[MAX_SHIP];
short fires[MAX_SHIP];
short sysDamage[MAX_SHIP];
short floatDamage[MAX_SHIP];
short oldData[MAX_SHIP];
char oldData[MAX_SHIP];
unsigned short captain[MAX_SHIP];
short shipClass[MAX_SHIP];
unsigned char nat[MAX_SHIP];
unsigned short oldData[MAX_SHIP];
int delay[MAX_SHIP];
int sunk[MAX_SHIP];
unsigned char oldData[MAX_SHIP];
unsigned char wpnDis[MAX_SHIP][20];
unsigned char empty[MAX_SHIP][30];
};

struct aircraft
{
char name[MAX_AIR][20];
unsigned char airClass[MAX_AIR];
short sym[MAX_AIR];
unsigned short maxAlt[MAX_AIR];
short maxSpeed[MAX_AIR];
short cruSpeed[MAX_AIR];
short climb[MAX_AIR];
unsigned char mvr[MAX_AIR];
short endurance[MAX_AIR];
unsigned char armor[MAX_AIR];
unsigned char durab[MAX_AIR];
unsigned char wpn[MAX_AIR][10];
unsigned char wpnNum[MAX_AIR][10];
unsigned char wpnFace[MAX_AIR][10];
short maxLoad[MAX_AIR];
unsigned char month[MAX_AIR];
unsigned char year[MAX_AIR];
unsigned char buildRate[MAX_AIR];
unsigned short bitmap[MAX_AIR];
unsigned short upgrade[MAX_AIR];
unsigned short pool[MAX_AIR];
unsigned short cost[MAX_AIR];
unsigned char oldData[MAX_AIR];
unsigned char empty[MAX_AIR][50];
};

struct shipClass
{
char name[MAX_CLASS][20];
unsigned char type[MAX_CLASS];
short sym[MAX_CLASS];
short maxSpeed[MAX_CLASS];
short cruSpeed[MAX_CLASS];
unsigned char mvr[MAX_CLASS];
short endurance[MAX_CLASS];
short fuel[MAX_CLASS];
unsigned char oldData[MAX_CLASS];
unsigned char durab[MAX_CLASS];
unsigned char wpn[MAX_CLASS][20];
unsigned char wpnNum[MAX_CLASS][20];
unsigned char wpnFace[MAX_CLASS][20];
unsigned char oldData[MAX_CLASS][20];
unsigned char wpnAmmo[MAX_CLASS][20];
unsigned char wpnTurret[MAX_CLASS][20];
short capacity[MAX_CLASS];
unsigned char month[MAX_CLASS];
short beltArmor[MAX_CLASS];
short deckArmor[MAX_CLASS];
short towerArmor[MAX_CLASS];
short wpnArmor[MAX_CLASS][20];
unsigned char year[MAX_CLASS];
unsigned short bitMap[MAX_CLASS];
unsigned short upgrade[MAX_CLASS];
unsigned char oldData[MAX_CLASS];
unsigned char empty[MAX_CLASS][44];
};

struct group
{
char name[MAX_GROUP][20];
unsigned char type[MAX_GROUP];
unsigned char airType[MAX_GROUP];
unsigned short leader[MAX_GROUP];
unsigned short prim[MAX_GROUP];
unsigned char subNum[MAX_GROUP];
unsigned short base[MAX_GROUP];
unsigned char wpn[MAX_GROUP][10];
unsigned char wpnNum[MAX_GROUP][10];
unsigned char wpnFace[MAX_GROUP][10];
unsigned char morale[MAX_GROUP];
unsigned char exp[MAX_GROUP];
unsigned char ready[MAX_GROUP];
unsigned char damaged[MAX_GROUP];
unsigned char nat[MAX_GROUP];
unsigned short oldData[MAX_GROUP];
unsigned short target[MAX_GROUP];
unsigned char mission[MAX_GROUP];
unsigned short altitude[MAX_GROUP];
unsigned char secondary[MAX_GROUP];
unsigned char nightDayOps[MAX_GROUP];
unsigned char searchPercent[MAX_GROUP];
unsigned char max[MAX_GROUP];
int delay[MAX_GROUP];
unsigned char oldData[MAX_GROUP];
char kamikaze[MAX_GROUP];
unsigned char upgrade[MAX_GROUP];
unsigned char empty[MAX_GROUP][48];
};

struct location
{
char name[MAX_LOC][20];
unsigned char type[MAX_LOC];
unsigned short int sym[MAX_LOC];
short int locX[MAX_LOC];
short int locY[MAX_LOC];
unsigned short wpn[MAX_LOC][20];
unsigned short int size[MAX_LOC];
unsigned char hqType[MAX_LOC];
short int damage[MAX_LOC];
unsigned short int oldData[MAX_LOC];
unsigned short int oldData[MAX_LOC];
short int fires[MAX_LOC];
unsigned short int oldData[MAX_LOC];
short int base[MAX_LOC];
unsigned short int prim[MAX_LOC];
unsigned short int leader[MAX_LOC];
unsigned short int suffix[MAX_LOC];
unsigned char exp[MAX_LOC];
unsigned char morale[MAX_LOC];
unsigned char mission[MAX_LOC];
unsigned char port[MAX_LOC];
unsigned char portBuild[MAX_LOC];
unsigned char af[MAX_LOC];
unsigned char afBuild[MAX_LOC];
unsigned short oldData[MAX_LOC][10];
unsigned short bitmap[MAX_LOC];
unsigned char nat[MAX_LOC];
unsigned short wpnNum[MAX_LOC][20];
unsigned short wpnDis[MAX_LOC][20];
unsigned char stance[MAX_LOC];
unsigned char retirement[MAX_LOC];
unsigned char reaction[MAX_LOC];
unsigned char control[MAX_LOC];
unsigned char pDamage[MAX_LOC];
unsigned char sDamage[MAX_LOC];
unsigned char rDamage[MAX_LOC];
unsigned short destHexX[MAX_LOC];
unsigned short destHexY[MAX_LOC];
unsigned short dest[MAX_LOC];
unsigned short homeBase[MAX_LOC];
int delay[MAX_LOC];
unsigned short daySupply[MAX_LOC];
unsigned short dayFuel[MAX_LOC];
unsigned short dayOil[MAX_LOC];
unsigned short dayResource[MAX_LOC];
unsigned char oldData[MAX_LOC];
unsigned char travel[MAX_LOC];
unsigned char fatigue[MAX_LOC];
unsigned char forts[MAX_LOC];
unsigned short formation[MAX_LOC];
unsigned short japVP[MAX_LOC];
unsigned short alliedVP[MAX_LOC];
unsigned char unitType[MAX_LOC];
unsigned char disabledPercent[MAX_LOC];
unsigned short loadUnit[MAX_LOC];
unsigned char readiness[MAX_LOC];
unsigned short unitTarget[MAX_LOC];
unsigned int fuel[MAX_LOC];
unsigned int supply[MAX_LOC];
unsigned int oil[MAX_LOC];
unsigned int resource[MAX_LOC];
unsigned char empty[MAX_LOC][68];
};

struct device
{
char name[MAX_DEVICE][20];
short type[MAX_DEVICE];
short loadCost[MAX_DEVICE];
short range[MAX_DEVICE];
short effect[MAX_DEVICE];
short pen[MAX_DEVICE];
short acc[MAX_DEVICE];
short available[MAX_DEVICE];
short upgrade[MAX_DEVICE];
short counterDT[MAX_DEVICE];
short counterTVal[MAX_DEVICE];
short dudRate[MAX_DEVICE];
unsigned short ceiling[MAX_DEVICE];
short armor[MAX_DEVICE];
short antiArmor[MAX_DEVICE];
short antiSoft[MAX_DEVICE];
short buildRate[MAX_DEVICE];
unsigned char oldData[MAX_DEVICE];
short pool[MAX_DEVICE];
short empty[MAX_DEVICE][42];
};

struct leader
{
char name[MAX_LEADER][20];
unsigned char rank[MAX_LEADER];
unsigned char skill[MAX_LEADER];
unsigned char morale[MAX_LEADER];
unsigned char naval[MAX_LEADER];
unsigned char air[MAX_LEADER];
unsigned char land[MAX_LEADER];
unsigned char admin[MAX_LEADER];
unsigned char aggression[MAX_LEADER];
unsigned char nation[MAX_LEADER];
unsigned short oldData[MAX_LEADER];
int delay[MAX_LEADER];
unsigned char oldData[MAX_LEADER];
unsigned char value[MAX_LEADER];
unsigned char type[MAX_LEADER];
unsigned char empty[MAX_LEADER][5];
};

struct pilot
{
char name[MAX_PILOT][20];
int rank[MAX_PILOT];
int exp[MAX_PILOT];
int group[MAX_PILOT];
int delay[MAX_PILOT];
int leader[MAX_PILOT];
unsigned char oldData[MAX_PILOT];
int empty[MAX_PILOT][6];
};
User avatar
Bodhi
Posts: 1267
Joined: Tue Aug 26, 2003 1:36 am
Location: Japan

RE: Is anyone writing a new editor?

Post by Bodhi »

ORIGINAL: Mike Wood

g

Does this mean we can expect the structures? [&o]

And thanks for not encrypting them. [8D]
Bodhi
User avatar
Mike Wood
Posts: 1424
Joined: Wed Mar 29, 2000 4:00 pm
Location: Oakland, California
Contact:

RE: Is anyone writing a new editor?

Post by Mike Wood »

Hello...

g was stub while I copied and pasted the structures.

Bye...

Michael Wood
ORIGINAL: Bodhi
ORIGINAL: Mike Wood

g

Does this mean we can expect the structures? [&o]

And thanks for not encrypting them. [8D]
User avatar
Mike Wood
Posts: 1424
Joined: Wed Mar 29, 2000 4:00 pm
Location: Oakland, California
Contact:

RE: Is anyone writing a new editor?

Post by Mike Wood »

Hello...

By the way, these structures do not work for the game executable. It uses dynamic memory allocation (classes, linked lists and the like).

Bye...

Michael Wood
User avatar
Bodhi
Posts: 1267
Joined: Tue Aug 26, 2003 1:36 am
Location: Japan

RE: Is anyone writing a new editor?

Post by Bodhi »

Mike,

Thanks very much, your help is greatly appreciated.[8D]
Bodhi
User avatar
Apollo11
Posts: 25350
Joined: Thu Jun 07, 2001 8:00 am
Location: Zagreb, Croatia
Contact:

RE: Is anyone writing a new editor?

Post by Apollo11 »

Hi all,
ORIGINAL: Mike Wood

Below are the datastructures for the data base editor.

Michael Wood

_FANTASTIC_ - thanks Michael !!! [&o][&o][&o]


Leo "Apollo11"
Image

Prior Preparation & Planning Prevents Pathetically Poor Performance!

A & B: WitW, WitE, WbtS, GGWaW, GGWaW2-AWD, HttR, CotA, BftB, CF
P: UV, WitP, WitP-AE
User avatar
Arkady
Posts: 1261
Joined: Fri May 31, 2002 1:37 pm
Location: 27th Penal Battalion
Contact:

RE: Is anyone writing a new editor?

Post by Arkady »

aaaaa...and you post it AFTER I did it myself [:'(]
ok, I can check it and found if I'm correct or not

I'm coding in Delphi 8 Architect for .NET , I have those datastructeres in this format if anyone want it.


Thank you Mike [&o]

Arkady
Image
User avatar
m10bob
Posts: 8583
Joined: Sun Nov 03, 2002 9:09 pm
Location: Dismal Seepage Indiana

RE: Is anyone writing a new editor?

Post by m10bob »

Michael...You are a PRINCE!!!!
BTW,are you the same Mike Wood who drastically improved the small arms capabilities for Steel Panthers years ago????
Image

User avatar
Mike Wood
Posts: 1424
Joined: Wed Mar 29, 2000 4:00 pm
Location: Oakland, California
Contact:

RE: Is anyone writing a new editor?

Post by Mike Wood »

Hello...

Yes. I was an external tester on the Steel Panthers (SP) series and eventually became the programmer at Novastar Game Company. There, I did the first alternate OOB and wrote some utility programs for SP. I then did the programming for SP WWII and the OOB files and programming for SP:WaW. I did the programming for Pacific War: The Matrix Project (Rich Dionne did the OOB work on that). Other projects I have worked on include: Dark Wood (role playing), Dragon Blade (role playing), Panthers in the Shadows, Online (a Windows version never published), Star Pilot (flight simulator), Uncommon Valor (war game), War in the Pacific (war game) and Armored War (board game for SPI, never published - went out of business).

Bye...

Michael Wood
ORIGINAL: m10bob

Michael...You are a PRINCE!!!!
BTW,are you the same Mike Wood who drastically improved the small arms capabilities for Steel Panthers years ago????
User avatar
Captain Cruft
Posts: 3741
Joined: Wed Mar 17, 2004 12:49 pm
Location: England

RE: Is anyone writing a new editor?

Post by Captain Cruft »

Thanks for the data structures.
User avatar
GBirkn
Posts: 249
Joined: Thu May 06, 2004 11:54 am
Location: the briny deep

RE: Is anyone writing a new editor?

Post by GBirkn »

I just have to add my thanks to all the others, Mike. Thank you, very, very much [&o][&o][&o][&o] -- this will be almost as fun to play with as the game itself! [:D]
"War is the remedy our enemies have chosen, and I say let's give them all they want." -- Gen. W. T. Sherman
Post Reply

Return to “Scenario Design”