VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "itemgraphicinfo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Public GraphicNum As Byte    '360+byte0 = graphic for item on floor
Public GraphicOffset As Byte
Public Width As Byte    'half the width
Public Height As Byte    'height
Public Byte4 As Byte    '0x01 : mirrable on floor (for boxes) 0x10: has special niche graphic
Public FloorItemGroup As Byte    'flooritemgroup

Public Function b4_nicheview() As Byte
    b4_nicheview = (Byte4 And &H10) / &H10
End Function
Public Function setb4_nicheview(num As Integer)
    Byte4 = (Byte4 And &HEF)
    If num = 1 Then
        Byte4 = Byte4 + &H10
    End If
End Function

Public Function b4_mirrored() As Byte
    b4_mirrored = (Byte4 And &H1) / &H1
End Function
Public Function setb4_mirrored(num As Integer)
    Byte4 = (Byte4 And &HFE)
    If num = 1 Then
        Byte4 = Byte4 + &H1
    End If
End Function

'    Octet 1: donne l 'index de l'image de l'objet (à partir du graph 0360)
'    Octet 2 : cet octet semble servir pour un système d'indexation : sa valeur progresse de 2 en 2
'          d 'un objet au suivant (3 tailles possibles pour l'affichage des objets en fonction de la
'          distance => on suppose que le programme stocke quelque part les 2 images de l'objet
'          redimensionné), sauf dans 3 cas : le coffre (la différence entre les octets 1644 et 1650
'          est de 6), et les 2 boîtes magiques (différence de 4 entre les valeurs des octets 2022 et
'          2028, et entre celles des octets 2118 et 2124). Ces 3 objets sont particuliers, puisque
'          ce sont les seuls pour lesquels il y a un effet "miroir", qui fait que leur image est
'          différente selon qu'ils se trouvent sur la gauche ou sur la droite du joueur (=> on
'          suppose donc que le programme stocke 2 images supplémentaires, correspondant à l'objet
'          "miroir" redimensionné). Le coffre a une autre particularité : c'est le seul objet qui
'          dispose d 'une image spéciale lorsqu'il est placé dans une niche (=> on suppose que le
'          programme stocke 2 images supplémentaires, correspondant à l'objet dans la niche
'          redimensionné).
'    Octet 3 : largeur de l'image de l'objet divisée par 2 (remarque : toutes les images des objets ont
'          une largeur égale à un multiple de 16)
'    Octet 4 : hauteur de l'image de l'objet, en pixels. (remarque : la hauteur de l'image d'un objet ne
'          doit pas dépasser 48 pixels, sinon cette image va "déborder" de la vue du donjon
'          lorsqu 'on lancera l'objet, et l'objet ne sera pas affiché!)
'    Octet 5 : seuls 2 bits semblent utilisés. En considérant que le bit le plus à gauche est le bit 1 :
'          - bit 1 : inutilisé
'          - bit 2 : inutilisé
'          - bit 3 : inutilisé
'          - bit 4 : s'il est à 1, cela indique que l'objet dispose d'une image particulière pour le
'                cas où il serait placé dans une niche. L'image suivante est alors utilisée.
'          - bit 5 : inutilisé
'          - bit 6 : inutilisé
'          - bit 7 : inutilisé
'          - bit 8 : s'il est à 1, cela indique qu'il faut appliquer un effet "miroir" entre les
'                positions "à gauche du joueur" et "à droite du joueur" pour cet objet, comme ceci:
'                      ______      |      ______
'                     /     /|     |     |\     \      (Remarque : ce dessin est sans
'                    |     | |     |     | |     |      doute superflu mais j'avais
'                    |     | | <---|---> | |     |      envie de le faire, alors je
'                    |_____|/      |      \|_____|      me suis dit "juste fais-le"
'                              |            et je l'ai fait)
'
'    Octet 6 : groupe de coordonnées de référence qu'il faut utiliser pour afficher l'image de cet
'          objet au bon endroit (0, 1, ou 2, voir octets 1157 à 1456).
'          * Remarque pratique, pour savoir à peu près dans quel groupe placer un objet que l'on a
'          dessiné soi - même:
'          - le groupe 0 concerne 30 objets, de largeur moyenne=55 pixels et de hauteur moyenne=18
'          - le groupe 1 concerne 50 objets, de largeur moyenne=34 pixels et de hauteur moyenne=10
'          - le groupe 2 concerne  5 objets, de largeur moyenne=70 pixels et de hauteur moyenne=23
'          Les objets les plus "petits" sont donc généralement dans le groupe 1, les plus "gros"
'          dans le groupe 2, et les objets de taille "moyenne" dans le groupe 0.
          
