Difference between revisions of "ActionA"

From GRFSpecs
Jump to navigationJump to search
Line 26: Line 26:
 
<num-sets>|B|How many consecutive sets of sprites to replace
 
<num-sets>|B|How many consecutive sets of sprites to replace
   
<num-sprites>|B|How many consecutives sprites in this set
+
<num-sprites>|B|How many consecutive sprites in this set
   
 
<first-sprites>|W|Number of first sprite in this set||
 
<first-sprites>|W|Number of first sprite in this set||
Line 60: Line 60:
 
You can find the sprite numbers by looking in trg1.pcx, they're the little numbers above each sprite, except for the climate-specific sprites which are more complicated.
 
You can find the sprite numbers by looking in trg1.pcx, they're the little numbers above each sprite, except for the climate-specific sprites which are more complicated.
   
Unlike actions 1 and 5, the real sprites of action A do not count towards the sprite limit of 11484 total active sprites.
+
Unlike actions 1 and 5, the real sprites of action A do not count towards the sprite limit.
   
 
To replace Sprites in other climates, you first need to find out what the sprite number is trg1.grf
 
To replace Sprites in other climates, you first need to find out what the sprite number is trg1.grf
  +
  +
Alternatively, edit trg?.grf, and use grfdiff (part of the grfcodec package) to create a grd, and then [http://inter-ee.net/allvb/ttdpatch/grdtogrf/|grdtogrf] to create a simple grf with the action A(s) already written for you. You still have to add the action 7s, as appropriate, though.
   
 
You set it to replace that number and add an Action7 which turns it off if it is not in the right climate.
 
You set it to replace that number and add an Action7 which turns it off if it is not in the right climate.

Revision as of 07:54, 28 September 2005

Modify TTD's sprites

Action A

Modify TTD's sprites.

-=Introduction=-

Unlike actions 1 and 5, which add new sprites for new features or vehicles, action A modifies TTD's built-in sprites.

-=Format=-

The data looks as follows:

 -+<Sprite-number> * <Length> 0A <num-sets> <num-sprites> <first-sprite>...+-

||Element|Size|Description

<Sprite-number>|dec|A sequential sprite number

<length>|dec|The total number of bytes used in this action

0A|B|Defines action 0A

<num-sets>|B|How many consecutive sets of sprites to replace

<num-sprites>|B|How many consecutive sprites in this set

<first-sprites>|W|Number of first sprite in this set||

The set of <num-sprites> and <first-sprites> is repeated as often as <num-sets> specifies.

The following sprites will be real sprites that replace the given TTD sprites.  There must be as many of them as num-sprites of all sets added up.

-=Filling in the terms=-

Sprite-number

This is just the number you are at.

Length

Count the number of bytes in this action.

num-sets

This sets how many different sets of sprites to replace. Each set are a number of consecutive sprites.

num-sprites

How many consecutive sprites to replace in this particular set.

first-sprite

The first sprite number to replace in this set.

-=Notes=-

You can find the sprite numbers by looking in trg1.pcx, they're the little numbers above each sprite, except for the climate-specific sprites which are more complicated.

Unlike actions 1 and 5, the real sprites of action A do not count towards the sprite limit.

To replace Sprites in other climates, you first need to find out what the sprite number is trg1.grf

Alternatively, edit trg?.grf, and use grfdiff (part of the grfcodec package) to create a grd, and then [1] to create a simple grf with the action A(s) already written for you. You still have to add the action 7s, as appropriate, though.

You set it to replace that number and add an Action7 which turns it off if it is not in the right climate.

-=Example=-

Below is an example of what a real Action A pseudo-sprite could look like with the sprite entries under it.

3 * 5     0A 01 0C 3A 08

4 c:\ttd\sprites\farmset.pcx 66 8 09 31 64 -31 0

5 c:\ttd\sprites\farmset.pcx 146 8 09 31 64 -31 0

6 c:\ttd\sprites\farmset.pcx 226 8 09 45 48 -15 -11

7 c:\ttd\sprites\farmset.pcx 290 8 09 33 22 1 -10

8 c:\ttd\sprites\farmset.pcx 322 8 09 31 64 -31 0

9 c:\ttd\sprites\farmset.pcx 402 8 09 29 57 -26 -4

10 c:\ttd\sprites\farmset.pcx 466 8 09 31 64 -31 0

11 c:\ttd\sprites\farmset.pcx 546 8 09 31 39 -19 -6

12 c:\ttd\sprites\farmset.pcx 594 8 09 31 64 -31 0

13 c:\ttd\sprites\farmset.pcx 674 8 09 49 28 -6 -28

14 c:\ttd\sprites\farmset.pcx 722 8 09 31 64 -31 0

15 c:\ttd\sprites\farmset.pcx 2 72 09 30 55 -29 0

||Byte|Meaning

3|<sprite-number>

5|<length> of the action in bytes; start counting at 0A (<action>)

0A|<action>: sets this pseudo-sprite to function as action A

01|<num-sets>: sets it to 1 set to replace

0C|<num-sprites>: sets it to 12 sprites in this set.

3A 08|<first-sprite>: First Sprite of the set (3A 08 - Farms)||