Difference between revisions of "Team file"

From Worms Knowledge Base

Jump to: navigation, search
(Added 1 Unknown Byte at the end, and made it clearer if grave =255 what to include.)
m (Notes about file extensions)
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{ParentArticle|[[File formats]]}}
 
{{ParentArticle|[[File formats]]}}
== File Header ==
 
  
* 4-byte tag signature - "WGT\x00"
+
== File Format (Worms Armageddon) ==
* unknown (1 byte)
+
* total team count (1 byte)
+
* utility upgrade options (1 byte)
+
- Flags:
+
- 1 = Laser Sight
+
- 2 = Fast Walk
+
- 4 = Invisibility
+
- 8 = Gravity
+
- 16 = Jetpack
+
* weapon upgrade options (1 byte)
+
- Flags:
+
- 1 = Grenade Uprgade
+
- 2 = Shotgun Upgrade
+
- 4 = Banana Bomb Upgrade
+
- 8 = Longbow Upgrade
+
- 16 = Aqua Sheep Upgrade
+
* game options (1 byte)
+
- Flags:
+
- 1 = God Worms
+
- 2 = Blood
+
- 4 = Sheep Heaven
+
* indestructible terrain option (1 byte) (0 = no, 3 = yes)
+
* unknown (1 byte)
+
  
== Team Format - Looped For Number of Teams==
+
Worms Armageddon stores team files with a WGT extension.
  
* Team Name (17 bytes)
+
=== File Header ===
* Worm 1 Name (17 bytes)
+
* Worm 2 Name (17 bytes)
+
* Worm 3 Name (17 bytes)
+
* Worm 4 Name (17 bytes)
+
* Worm 5 Name (17 bytes)
+
* Worm 6 Name (17 bytes)
+
* Worm 7 Name (17 bytes)
+
* Worm 8 Name (17 bytes)
+
* Team Control (1 byte) (0 = player controlled, 1 to 5 correspond to CPU level 1 to 5)
+
* Soundbank Name (32 bytes)
+
* Soundbank Location? (1 byte) (0 = ?, 1 = ?)
+
* Fanfare Name (32 bytes)
+
* Fanfare Location (1 byte) (0 = ?, 1 = ?)
+
* Team Grave (1 byte) (0 to 254 = sprite index from gfx.dir, 255 = custom 24 x 32 bitmap)
+
  
If Team Grave = 255 (custom) then include:
+
{| border="1" cellspacing="0" class="wikitable"
  * Grave File Name (32 bytes)
+
!Offset
  * Grave Bitmap Data (1792 bytes) ((palette 256 * 4) + (data 24 * 32))
+
!Size
 +
!Type
 +
!Description
 +
|-
 +
| 00
 +
| 4
 +
| char[4]
 +
| '''Signature'''. The [[w: Magic number (programming)|magic number]] used to identify the WGT file, being a 0-terminated string. [[w: Hexadecimal|Hex]]: 0x57475400, [[w: ASCII|ASCII]]: "WGT\0"
 +
|-
 +
| 04
 +
| 1
 +
| byte
 +
| '''Unknown''' (a version number?)
 +
|-
 +
| 05
 +
| 1
 +
| ubyte
 +
| '''Number of teams''' The number of teams in the file.
 +
|-
 +
| 06
 +
| 1
 +
| byte
 +
| '''[[Cheats (Worms Armageddon)|Utility upgrade cheats]]''' Bitmask: 1 = [[Laser Sight]], 2 = [[Fast Walk]], 4 = [[Invisibility]], 8 = [[Low Gravity]], 16 = [[Jetpack]]
 +
|-
 +
| 07
 +
| 1
 +
| byte
 +
| '''[[Cheats (Worms Armageddon)|Weapon upgrade cheats]]''' Bitmask: 1 = [[Grenade]], 2 = [[Shotgun]], 4 = [[Banana Bomb]], 8 = [[Longbow]], 16 = [[Aqua Sheep]]
 +
|-
 +
| 08
 +
| 1
 +
| byte
 +
| '''[[Cheats (Worms Armageddon)|Game cheats]]''' Bitmask: 1 = God Worms, 2 = Blood, 4 = Sheep Heaven
 +
|-
 +
| 09
 +
| 1
 +
| byte
 +
| '''Indestructible terrain''' and '''Full Wormage scheme''': 0 = no, 1 = yes
 +
|-
 +
| 0A
 +
| 1
 +
| byte
 +
| '''Unknown'''
 +
|}
  
* Team Weapon (1 byte)
+
=== Team Format - Looped For Number of Teams===
* Team Loss Count (4 bytes)
+
 
* Team Deathmatch Loss Count (4 bytes)
+
{| border="1" cellspacing="0" class="wikitable"
* Team Win Count (4 bytes)
+
!Size
* Team Deathmatch Win Count (4 bytes)
+
!Type
* Team Draw Count (4 bytes)
+
!Description
* Team Deathmatch Draw Count (4 bytes)
+
|-
* Number of worms killed by team (4 bytes)
+
| 17
* Number of worms killed in deathmatches by team (4 bytes)
+
| char[17]
* Number of worms lost by team (4 bytes)
+
| '''Team Name''' The team's display name.
* Number of worms lost in deathmatches by team (4 bytes)
+
|-
* Team's Mission Status (264 bytes) (33 missions * (mission attempts (4 bytes) & mission medal (4 bytes))
+
| 136
* Flag File Name (32 bytes)
+
| char[8][17]
* Flag Bitmap Data (1364 bytes) ((palette 256 * 4) + (data 20 * 17))
+
| '''Worm Names''' An array of 8 worm names, 17 bytes per name.
* Team's Deathmatch Rank (1 byte)
+
|-
* Team Training Mission Times (24 bytes) (4 bytes * 6 missions)
+
| 1
* Unknown (40 bytes)
+
| byte
* Team Training Mission Medals (6 bytes) (1 byte * 6 missions)
+
| '''Control''' Determines who gets to contol the team. Values: 0x00 = player, 0x01 to 0x05 = CPU level 1 to 5.
* Unknown (10 bytes)
+
|-
* Unknown (28 bytes) (7 * 4)
+
| 32
* Unknown (1 Byte)
+
| char[32]
 +
| '''Soundbank Name''' The name of the [[Soundbanks|soundbank]] used by the team.
 +
|-
 +
| 1
 +
| byte
 +
| '''[[Soundbanks|Soundbank]] Location?''' Values: 0x00 = ?, 0x01 = ?
 +
|-
 +
| 32
 +
| char[32]
 +
| '''Fanfare Name''' The name of the fanfare used by the team.
 +
|-
 +
| 1
 +
| byte
 +
| '''Use Custom Fanfare''' Values: 0x00 = use player's country fanfare, 0x01 = use selected one as stored in Fanfare Name.
 +
|-
 +
| 1
 +
| ubyte
 +
| '''Team Grave''' Determines the appearance of the team's gravestone. Values: 0x00 to 0xFE = sprite index from gfx.dir, 0xFF = [[Custom team grave|custom 24x32 bitmap]].
 +
|- bgcolor="skyblue"
 +
| colspan="3" align="center" | '''If Team Grave ≥ 0x80:'''
 +
|- bgcolor="lightblue"
 +
| 32
 +
| char[32]
 +
|  '''Grave Filename''' The filename for the custom grave.
 +
|- bgcolor="lightblue"
 +
| 1024
 +
| ubyte[256][4]
 +
|  '''Grave Bitmap Palette''' The 256-color palette for the custom grave. (4 bytes per color: Blue, Green, Red, 0x00.)
 +
|- bgcolor="lightblue"
 +
| 768
 +
| ubyte[32][24]
 +
|  '''Grave Bitmap Data''' The 24x32 bitmap data for the custom grave. (32 rows, top to bottom: each 24 pixels, left to right)
 +
|-
 +
| 1
 +
| byte
 +
| '''Team Weapon'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Loss Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Loss Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Win Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Win Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Draw Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Draw Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Kills'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Kills'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deaths'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Deaths'''
 +
|-
 +
| 264
 +
| ulong[33][2]
 +
| '''Team Mission Status''' 33 missions: [0] = attempts (ulong), [1] = medal (ulong)
 +
|-
 +
| 32
 +
| char[32]
 +
|  '''Flag Filename''' The filename for the team flag.
 +
|-
 +
| 1024
 +
| ubyte[256][4]
 +
|  '''Flag Bitmap Palette''' The 256-color palette for the team flag. (4 bytes per color: Blue, Green, Red, 0x00.)
 +
|-
 +
| 340
 +
| ubyte[17][20]
 +
|  '''Flag Bitmap Data''' The 20x17 bitmap data for the team flag. (17 rows, top to bottom: each 20 pixels, left to right)
 +
|-
 +
| 1
 +
| byte
 +
|  '''Team Deathmatch Rank'''
 +
|-
 +
| 24
 +
| ulong[6]
 +
|  '''Team Training Mission Times''' (in seconds)
 +
|-
 +
| 40
 +
| byte[40]
 +
| '''Unknown'''
 +
|-
 +
| 6
 +
| byte[6]
 +
|  '''Team Training Mission Medals'''
 +
|-
 +
| 10
 +
| byte[10]
 +
| '''Unknown'''
 +
|-
 +
| 28
 +
| long[7]
 +
| '''Unknown''', seemingly random dword values.
 +
|-
 +
| 1
 +
| byte
 +
| '''Unknown'''
 +
|}
 +
 
 +
== File Format (Worms World Party)==
 +
 
 +
The team files created by Worms World Party are very similar to those of Worms Armageddon, but differ naturally to store new features like ''Points for Weapons'' settings and the fort of the team, aswell as bigger arrays for mission times and stats since Worms World Party offers more of them.
 +
 
 +
Worms World Party stores team files with a WWP extension.
 +
 
 +
=== File Header ===
 +
 
 +
{| border="1" cellspacing="0" class="wikitable"
 +
!Offset
 +
!Size
 +
!Type
 +
!Description
 +
|-
 +
| 00
 +
| 4
 +
| char[4]
 +
| '''Signature'''. The [[w: Magic number (programming)|magic number]] used to identify the WWP file, being a 0-terminated string. [[w: Hexadecimal|Hex]]: 0x57575000, [[w: ASCII|ASCII]]: "WWP\0"
 +
|-
 +
| 04
 +
| 1
 +
| byte
 +
| '''Unknown''' (a version number?)
 +
|-
 +
| 05
 +
| 1
 +
| ubyte
 +
| '''Number of teams''' The number of teams in the file.
 +
|-
 +
| 06
 +
| 2
 +
| byte[2]
 +
| '''Unknown''', varying values.
 +
|-
 +
| 08
 +
| 840
 +
| byte[840]
 +
| '''Unknown''', all 0.
 +
|}
 +
 
 +
=== Team Format - Looped For Number of Teams===
 +
 
 +
{| border="1" cellspacing="0" class="wikitable"
 +
!Size
 +
!Type
 +
!Description
 +
|-
 +
| 17
 +
| char[17]
 +
| '''Team Name''' The team's display name.
 +
|-
 +
| 136
 +
| char[8][17]
 +
| '''Worm Names''' An array of 8 worm names, 17 bytes per name.
 +
|-
 +
| 1
 +
| byte
 +
| '''Control''' Determines who gets to contol the team. Values: 0x00 = player, 0x01 to 0x05 = CPU level 1 to 5.
 +
|-
 +
| 32
 +
| char[32]
 +
| '''Soundbank Name''' The name of the [[Soundbanks|soundbank]] used by the team.
 +
|-
 +
| 1
 +
| byte
 +
| '''[[Soundbanks|Soundbank]] Location?''' Values: 0x00 = ?, 0x01 = ?
 +
|-
 +
| 32
 +
| char[32]
 +
| '''Fanfare Name''' The name of the fanfare used by the team.
 +
|-
 +
| 1
 +
| byte
 +
| '''Use Custom Fanfare''' Values: 0x00 = use player's country fanfare, 0x01 = use selected one as stored in Fanfare Name.
 +
|-
 +
| 1
 +
| ubyte
 +
| '''Team Grave''' Determines the appearance of the team's gravestone. Values: 0x00 to 0xFE = sprite index from gfx.dir, 0xFF = [[Custom team grave|custom 24x32 bitmap]].
 +
|- bgcolor="skyblue"
 +
| colspan="3" align="center" | '''If Team Grave ≥ 0x80:'''
 +
|- bgcolor="lightblue"
 +
| 32
 +
| char[32]
 +
|  '''Grave Filename''' The filename for the custom grave.
 +
|- bgcolor="lightblue"
 +
| 1024
 +
| ubyte[256][4]
 +
|  '''Grave Bitmap Palette''' The 256-color palette for the custom grave. (4 bytes per color: Blue, Green, Red, 0x00.)
 +
|- bgcolor="lightblue"
 +
| 768
 +
| ubyte[32][24]
 +
|  '''Grave Bitmap Data''' The 24x32 bitmap data for the custom grave. (32 rows, top to bottom: each 24 pixels, left to right)
 +
|-
 +
| 1
 +
| byte
 +
| '''Team Weapon'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Loss Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Loss Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Win Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Win Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Draw Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Draw Count'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Kills'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Kills'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deaths'''
 +
|-
 +
| 4
 +
| ulong
 +
| '''Team Deathmatch Deaths'''
 +
|-
 +
| 360
 +
| ulong[45][2]
 +
| '''Team Mission Status''' 45 missions: [0] = attempts (ulong), [1] = medal (ulong)
 +
|-
 +
| 32
 +
| char[32]
 +
|  '''Flag Filename''' The filename for the team flag.
 +
|-
 +
| 1024
 +
| ubyte[256][4]
 +
|  '''Flag Bitmap Palette''' The 256-color palette for the team flag. (4 bytes per color: Blue, Green, Red, 0x00.)
 +
|-
 +
| 340
 +
| ubyte[17][20]
 +
|  '''Flag Bitmap Data''' The 20x17 bitmap data for the team flag. (17 rows, top to bottom: each 20 pixels, left to right)
 +
|-
 +
| 1
 +
| byte
 +
'''Unknown''', mostly non-zero.
 +
|-
 +
| 1
 +
| byte
 +
|  '''Team Deathmatch Rank'''
 +
|-
 +
| 140
 +
| ulong[35]
 +
|  '''Team Training Mission Times''' (in seconds). There seems to be an unused 35th time as there are only 34 training missions.
 +
|-
 +
| 46
 +
| byte[46]
 +
| '''Points for Weapons''' spent, each byte holding the setting for a specific weapon (s. below for indices into this array). The game does not check if more points were spent than available in-game.
 +
|-
 +
| 1
 +
| byte
 +
| '''Fort''' index as used in the Forts WormPot mode.
 +
|-
 +
| 28
 +
| long[7]
 +
| '''Unknown''', seemingly random dword values.
 +
|}
 +
 
 +
=== Points for Weapons Indices ===
 +
 
 +
The indices pointing to weapons in the ''Points for Weapons'' array mentioned above are the same as those of a [[Game scheme file]], but only up to the Invisibility utility, which Suicide Bomber and Worm Select follow (as those have higher indices in a scheme file due to being sorted into it as super weapons). This yields:
 +
 
 +
{| border="1" cellspacing="0" class="wikitable"
 +
! Position
 +
! Weapon Name
 +
|-
 +
| 0
 +
| [[Bazooka]]
 +
|-
 +
| 1
 +
| [[Homing Missile]]
 +
|-
 +
| 2
 +
| [[Mortar]]
 +
|-
 +
| 3
 +
| [[Grenade]]
 +
|-
 +
| 4
 +
| [[Cluster Bomb]]
 +
|-
 +
| 5
 +
| [[Skunk]]
 +
|-
 +
| 6
 +
| [[Petrol Bomb]]
 +
|-
 +
| 7
 +
| [[Banana Bomb]]
 +
|-
 +
| 8
 +
| [[Handgun]]
 +
|-
 +
| 9
 +
| [[Shotgun]]
 +
|-
 +
| 10
 +
| [[Uzi]]
 +
|-
 +
| 11
 +
| [[Minigun]]
 +
|-
 +
| 12
 +
| [[Longbow]]
 +
|-
 +
| 13
 +
| [[Airstrike]]
 +
|-
 +
| 14
 +
| [[Napalm Strike]]
 +
|-
 +
| 15
 +
| [[Mine]]
 +
|-
 +
| 16
 +
| [[Fire Punch]]
 +
|-
 +
| 17
 +
| [[Dragon Ball]]
 +
|-
 +
| 18
 +
| [[Kamikaze]]
 +
|-
 +
| 19
 +
| [[Prod]]
 +
|-
 +
| 20
 +
| [[Battle Axe]]
 +
|-
 +
| 21
 +
| [[Blowtorch]]
 +
|-
 +
| 22
 +
| [[Pneumatic Drill]]
 +
|-
 +
| 23
 +
| [[Girder]]
 +
|-
 +
| 24
 +
| [[Ninja Rope]]
 +
|-
 +
| 25
 +
| [[Parachute]]
 +
|-
 +
| 26
 +
| [[Bungee]]
 +
|-
 +
| 27
 +
| [[Teleport]]
 +
|-
 +
| 28
 +
| [[Dynamite]]
 +
|-
 +
| 29
 +
| [[Sheep]]
 +
|-
 +
| 30
 +
| [[Baseball Bat]]
 +
|-
 +
| 31
 +
| [[Flame Thrower]]
 +
|-
 +
| 32
 +
| [[Homing Pigeon]]
 +
|-
 +
| 33
 +
| [[Mad Cow]]
 +
|-
 +
| 34
 +
| [[Holy Hand Grenade]]
 +
|-
 +
| 35
 +
| [[Old Woman]]
 +
|-
 +
| 36
 +
| [[Sheep Launcher]]
 +
|-
 +
| 37
 +
| [[Super Sheep]]
 +
|-
 +
| 38
 +
| [[Mole Bomb]]
 +
|-
 +
| 39
 +
| [[Jet Pack]]
 +
|-
 +
| 40
 +
| [[Low Gravity]]
 +
|-
 +
| 41
 +
| [[Laser Sight]]
 +
|-
 +
| 42
 +
| [[Fast Walk]]
 +
|-
 +
| 43
 +
| [[Invisibility]]
 +
|-
 +
| 44
 +
| [[Suicide Bomber]]
 +
|-
 +
| 45
 +
| [[Worm Select]]
 +
|-
 +
|}
 +
 
 +
== Animated graves ==
 +
 
 +
W:A and WWP allows the user to select one of six animated graves from the user interface. However, it's possible to set the grave animation to certain other sprites with external software (for example, using a [[Software#Team editors|team editor]] such as [[TeamED]]).
 +
 
 +
This is possible by setting the Team Grave value in the team file to a value higher than 5. The game calculates the sprite index for the team grave by reading the value from the team file, and adding it to the index of the first grave. Using a value higher than 5 causes the game to use sprites which follow the graves in the game's internal sprite list:
 +
 
 +
{| class="wikitable"
 +
| colspan="2" style="text-align: center" | ... some other sprites ...
 +
|-
 +
| '''0''' || <tt>grave1.spr</tt>
 +
|-
 +
| '''1''' || <tt>grave2.spr</tt>
 +
|-
 +
| '''2''' || <tt>grave3.spr</tt>
 +
|-
 +
| '''3''' || <tt>grave4.spr</tt>
 +
|-
 +
| '''4''' || <tt>grave5.spr</tt>
 +
|-
 +
| '''5''' || <tt>grave6.spr</tt>
 +
|-
 +
| 6 || <tt>flame1.spr</tt>
 +
|-
 +
| 7 || <tt>flame2.spr</tt>
 +
|-
 +
| 8 || <tt>petrol-1.spr</tt>
 +
|-
 +
| colspan="2" style="text-align: center" | ... more sprites ...
 +
|}
 +
 
 +
Note that this only allows selecting a grave from a predefined set. It is impossible to have a ''custom'' animated grave.
 +
 
 +
Be warned that using an animated grave (especially a large sprite) is found annoying by many, and is usually frowned upon.

Revision as of 20:53, 25 April 2017

(Up to File formats)

File Format (Worms Armageddon)

Worms Armageddon stores team files with a WGT extension.

File Header

Offset Size Type Description
00 4 char[4] Signature. The magic number used to identify the WGT file, being a 0-terminated string. Hex: 0x57475400, ASCII: "WGT\0"
04 1 byte Unknown (a version number?)
05 1 ubyte Number of teams The number of teams in the file.
06 1 byte Utility upgrade cheats Bitmask: 1 = Laser Sight, 2 = Fast Walk, 4 = Invisibility, 8 = Low Gravity, 16 = Jetpack
07 1 byte Weapon upgrade cheats Bitmask: 1 = Grenade, 2 = Shotgun, 4 = Banana Bomb, 8 = Longbow, 16 = Aqua Sheep
08 1 byte Game cheats Bitmask: 1 = God Worms, 2 = Blood, 4 = Sheep Heaven
09 1 byte Indestructible terrain and Full Wormage scheme: 0 = no, 1 = yes
0A 1 byte Unknown

Team Format - Looped For Number of Teams

Size Type Description
17 char[17] Team Name The team's display name.
136 char[8][17] Worm Names An array of 8 worm names, 17 bytes per name.
1 byte Control Determines who gets to contol the team. Values: 0x00 = player, 0x01 to 0x05 = CPU level 1 to 5.
32 char[32] Soundbank Name The name of the soundbank used by the team.
1 byte Soundbank Location? Values: 0x00 = ?, 0x01 = ?
32 char[32] Fanfare Name The name of the fanfare used by the team.
1 byte Use Custom Fanfare Values: 0x00 = use player's country fanfare, 0x01 = use selected one as stored in Fanfare Name.
1 ubyte Team Grave Determines the appearance of the team's gravestone. Values: 0x00 to 0xFE = sprite index from gfx.dir, 0xFF = custom 24x32 bitmap.
If Team Grave ≥ 0x80:
32 char[32] Grave Filename The filename for the custom grave.
1024 ubyte[256][4] Grave Bitmap Palette The 256-color palette for the custom grave. (4 bytes per color: Blue, Green, Red, 0x00.)
768 ubyte[32][24] Grave Bitmap Data The 24x32 bitmap data for the custom grave. (32 rows, top to bottom: each 24 pixels, left to right)
1 byte Team Weapon
4 ulong Team Loss Count
4 ulong Team Deathmatch Loss Count
4 ulong Team Win Count
4 ulong Team Deathmatch Win Count
4 ulong Team Draw Count
4 ulong Team Deathmatch Draw Count
4 ulong Team Kills
4 ulong Team Deathmatch Kills
4 ulong Team Deaths
4 ulong Team Deathmatch Deaths
264 ulong[33][2] Team Mission Status 33 missions: [0] = attempts (ulong), [1] = medal (ulong)
32 char[32] Flag Filename The filename for the team flag.
1024 ubyte[256][4] Flag Bitmap Palette The 256-color palette for the team flag. (4 bytes per color: Blue, Green, Red, 0x00.)
340 ubyte[17][20] Flag Bitmap Data The 20x17 bitmap data for the team flag. (17 rows, top to bottom: each 20 pixels, left to right)
1 byte Team Deathmatch Rank
24 ulong[6] Team Training Mission Times (in seconds)
40 byte[40] Unknown
6 byte[6] Team Training Mission Medals
10 byte[10] Unknown
28 long[7] Unknown, seemingly random dword values.
1 byte Unknown

File Format (Worms World Party)

The team files created by Worms World Party are very similar to those of Worms Armageddon, but differ naturally to store new features like Points for Weapons settings and the fort of the team, aswell as bigger arrays for mission times and stats since Worms World Party offers more of them.

Worms World Party stores team files with a WWP extension.

File Header

Offset Size Type Description
00 4 char[4] Signature. The magic number used to identify the WWP file, being a 0-terminated string. Hex: 0x57575000, ASCII: "WWP\0"
04 1 byte Unknown (a version number?)
05 1 ubyte Number of teams The number of teams in the file.
06 2 byte[2] Unknown, varying values.
08 840 byte[840] Unknown, all 0.

Team Format - Looped For Number of Teams

Size Type Description
17 char[17] Team Name The team's display name.
136 char[8][17] Worm Names An array of 8 worm names, 17 bytes per name.
1 byte Control Determines who gets to contol the team. Values: 0x00 = player, 0x01 to 0x05 = CPU level 1 to 5.
32 char[32] Soundbank Name The name of the soundbank used by the team.
1 byte Soundbank Location? Values: 0x00 = ?, 0x01 = ?
32 char[32] Fanfare Name The name of the fanfare used by the team.
1 byte Use Custom Fanfare Values: 0x00 = use player's country fanfare, 0x01 = use selected one as stored in Fanfare Name.
1 ubyte Team Grave Determines the appearance of the team's gravestone. Values: 0x00 to 0xFE = sprite index from gfx.dir, 0xFF = custom 24x32 bitmap.
If Team Grave ≥ 0x80:
32 char[32] Grave Filename The filename for the custom grave.
1024 ubyte[256][4] Grave Bitmap Palette The 256-color palette for the custom grave. (4 bytes per color: Blue, Green, Red, 0x00.)
768 ubyte[32][24] Grave Bitmap Data The 24x32 bitmap data for the custom grave. (32 rows, top to bottom: each 24 pixels, left to right)
1 byte Team Weapon
4 ulong Team Loss Count
4 ulong Team Deathmatch Loss Count
4 ulong Team Win Count
4 ulong Team Deathmatch Win Count
4 ulong Team Draw Count
4 ulong Team Deathmatch Draw Count
4 ulong Team Kills
4 ulong Team Deathmatch Kills
4 ulong Team Deaths
4 ulong Team Deathmatch Deaths
360 ulong[45][2] Team Mission Status 45 missions: [0] = attempts (ulong), [1] = medal (ulong)
32 char[32] Flag Filename The filename for the team flag.
1024 ubyte[256][4] Flag Bitmap Palette The 256-color palette for the team flag. (4 bytes per color: Blue, Green, Red, 0x00.)
340 ubyte[17][20] Flag Bitmap Data The 20x17 bitmap data for the team flag. (17 rows, top to bottom: each 20 pixels, left to right)
1 byte Unknown, mostly non-zero.
1 byte Team Deathmatch Rank
140 ulong[35] Team Training Mission Times (in seconds). There seems to be an unused 35th time as there are only 34 training missions.
46 byte[46] Points for Weapons spent, each byte holding the setting for a specific weapon (s. below for indices into this array). The game does not check if more points were spent than available in-game.
1 byte Fort index as used in the Forts WormPot mode.
28 long[7] Unknown, seemingly random dword values.

Points for Weapons Indices

The indices pointing to weapons in the Points for Weapons array mentioned above are the same as those of a Game scheme file, but only up to the Invisibility utility, which Suicide Bomber and Worm Select follow (as those have higher indices in a scheme file due to being sorted into it as super weapons). This yields:

Position Weapon Name
0 Bazooka
1 Homing Missile
2 Mortar
3 Grenade
4 Cluster Bomb
5 Skunk
6 Petrol Bomb
7 Banana Bomb
8 Handgun
9 Shotgun
10 Uzi
11 Minigun
12 Longbow
13 Airstrike
14 Napalm Strike
15 Mine
16 Fire Punch
17 Dragon Ball
18 Kamikaze
19 Prod
20 Battle Axe
21 Blowtorch
22 Pneumatic Drill
23 Girder
24 Ninja Rope
25 Parachute
26 Bungee
27 Teleport
28 Dynamite
29 Sheep
30 Baseball Bat
31 Flame Thrower
32 Homing Pigeon
33 Mad Cow
34 Holy Hand Grenade
35 Old Woman
36 Sheep Launcher
37 Super Sheep
38 Mole Bomb
39 Jet Pack
40 Low Gravity
41 Laser Sight
42 Fast Walk
43 Invisibility
44 Suicide Bomber
45 Worm Select

Animated graves

W:A and WWP allows the user to select one of six animated graves from the user interface. However, it's possible to set the grave animation to certain other sprites with external software (for example, using a team editor such as TeamED).

This is possible by setting the Team Grave value in the team file to a value higher than 5. The game calculates the sprite index for the team grave by reading the value from the team file, and adding it to the index of the first grave. Using a value higher than 5 causes the game to use sprites which follow the graves in the game's internal sprite list:

... some other sprites ...
0 grave1.spr
1 grave2.spr
2 grave3.spr
3 grave4.spr
4 grave5.spr
5 grave6.spr
6 flame1.spr
7 flame2.spr
8 petrol-1.spr
... more sprites ...

Note that this only allows selecting a grave from a predefined set. It is impossible to have a custom animated grave.

Be warned that using an animated grave (especially a large sprite) is found annoying by many, and is usually frowned upon.

Personal tools