1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
| #====================================================================
# Mode 7 Ace
# v.1.8
# Auteur : MGC
#
# Il s'agit d'un script de mode 7 basique pour RMVX Ace.
#
# - Permet une inclinaison de la carte de 0° à 89°
# - Toute la carte est inclinée, sans relief. Seuls les évènements
# paraissent dressés verticalement.
# - L'effet de colorisation à l'horizon est personnalisable.
# - Les tiles animés sont supportés, ainsi que le bouclage de la carte.
# - possibilité de zoomer (de 1:8 à 8:1) quand le mode 7 est activé.
#
# IMPORTANT : SI VOUS RENCONTREZ DU LAG, VEUILLEZ VOUS ASSURER D'AVOIR
# DECOCHER "REDUCE SCREEN FLICKERING" (F1).
#
# Nécessite :
# - le fichier MGC_Mode7_Ace_1_8.dll à la racine du projet
# - les 3 fichiers graphiques suivants, déposés dans Pictures/ :
# - autotiles_data.png
# - autotiles_data_small.png
# - autotiles_data_xsmall.png
#
# Configuration :
# - MODE7_MAPS_ID : Contient la liste des id des cartes pour lesquelles
# le mode 7 est appliqué dès l'entrée sur ces cartes
# - MODE7_DEFAULT_ZOOM : valeur de zoom par défaut qui s'applique dès le
# passage en mode 7. Compris entre 0.125 et 8.0.
# - MODE7_DEFAULT_ANGLE : valeur d'angle d'inclinaison par défaut qui
# s'applique dès le passage en mode 7. Compris entre 0 et 89.
# - MODE7_VIEW_LIMIT : nombre de tiles supplémentaires à afficher (en plus
# des 13 pour la vue normale de la carte en 544 * 416) avant l'horizon.
# - MODE7_FADING_DISTANCE : nombre de tiles avant l'horizon subissant un
# dégradé de ton et/ou d'opacité.
# - MODE7_FADING_TONE : composantes de couleur R, G, B vers lesquelles tend
# le dégradé de ton à l'horizon. Chaque composantes peut varier
# entre -255 et 255.
# - MODE7_FADING_OPACITY : opacité vers laquelle tend le dégradé d'opacité ton
# à l'horizon. Compris entre 255 (pas de dégradé d'opacité) et 0.
# - MODE7_SCAN_STEP : méthode de rafraîchissement de l'écran :
# - 1 : l'écran est entièrement redessiné en 1 frame. Déconseillé
# car extrêmement gourmand en ressources.
# - 2 : l'écran est redessiné en 2 frames (une ligne de l'écran sur
# deux est dessinée pour chaque frame).
# - 3 : l'écran est redessiné en 3 frames (une ligne de l'écran sur
# trois est dessinée pour chaque frame). Conseillé s'il y a
# trop de lag.
# - MODE7_TERRAIN_TAGS : liste de valeurs de terrain tags pour lesquelles les
# tiles doivent être dessinés verticalement en mode 7. Si le paramètre
# MODE7_VERTICAL_TILES_TYPE n'a pas sa valeur égale à 0, utiliser
# plusieurs valeurs permet de séparer des regroupements de tiles
# contigus.
# - MODE7_VERTICAL_TILES_TYPE :
# - 0 : aucun regroupement des tiles verticaux même si des tiles voisins
# ont le même terrain tag. Pour un tile avec un terrain tag
# configuré pour être dessiné verticalement, un sprite de
# dimensions 32*32 est créé. A priori aucun intérêt sans la
# rotation, car aura le même effet que la valeur 2 mais avec
# plus de sprites à l'écran, donc plus de ralentissements.
# - 1 : regroupement des tiles verticaux contigus sur la même colonne
# ayant le même terrain tag. Un sprite est créé par regroupement,
# le tile le plus bas du regroupement servant de base au sprite.
# A priori aucun intérêt sans la rotation, car aura le même effet
# que la valeur 3 mais avec plus de sprites à afficher.
# - 2 : regroupement des tiles verticaux contigus sur la même ligne
# ayant le même terrain tag. Un sprite est créé par regroupement,
# l'origine horizontale étant fixée au milieu du regroupement.
# - 3 : regroupement des tiles verticaux contigus ayant le même
# terrain tag, quelle que soit la ligne ou la colonne. Un sprite
# est créé par regroupement, le tile le plus bas du regroupement
# servant de base au sprite et l'origine horizontale étant fixée
# au milieu du regroupement. Valeur par défaut.
# - MODE7_ALWAYS_DRAW_TILES_ON_MAP :
# - 0 : les tiles verticaux ne sont pas dessinés couchés sur la carte.
# Valeur par défaut.
# - 1 : les tiles verticaux sont également dessinés couchés sur la carte.
#
# Utilisation :
# Commandes utilisables comme commandes d'évènement avec Script... :
# - MGC.start_mode7 : lance le mode 7 pour la carte
# - MGC.to_mode7_angle(nouvel angle, durée de transition)
# - MGC.to_mode7_zoom(nouvelle valeur de zoom, durée de transition)
# - MGC.end_mode7 : quitte le mode 7
# - MGC.set_mode7_scan(nouvelle valeur) : modifie le paramètre MODE7_SCAN_STEP
#
# Vous pouvez ajouter des commandes dans le nom des cartes pour forcer le
# paramétrage du mode 7 de la carte. Les paramètres dans le nom de la
# carte sont prioritaires par rapport à ceux dans la partie CONFIGURATION
# - [M7] : active le mode 7 pour la carte
# - [Ax], où x est un entier entre 0 et 89 : angle de la carte
# - [Zx], où x est un décimal entre 0.125 et 8.0 : zoom de la carte
# - [FDx], où x est un entier positif : nombre de tiles avant l'horizon
# subissant un dégradé de ton et/ou d'opacité
# - [FTx,y,z], où x, y et z sont des entiers entre -255 et 255 :
# composantes de couleur R, G, B vers lesquelles tend le dégradé
# de ton à l'horizon
# - [FOx], où x est un entier entre 0 et 255 : opacité vers laquelle
# tend le dégradé d'opacité ton à l'horizon
# Exemple :
# My Worldmap [M7][A55][Z0.5][FD20][FT128,64,-32][FO128]
#====================================================================
module MGC
#--------------------------------------------------------------------------
# * CONFIGURATION
#--------------------------------------------------------------------------
MODE7_MAPS_ID = []
MODE7_DEFAULT_ZOOM = 1.0
MODE7_DEFAULT_ANGLE = 0
MODE7_VIEW_LIMIT = 26
MODE7_FADING_DISTANCE = 13
MODE7_FADING_TONE = Tone.new(64, 64, 128)
MODE7_FADING_OPACITY = 0
MODE7_SCAN_STEP = 2
MODE7_TERRAIN_TAGS = [1, 2] # [1.7]
MODE7_VERTICAL_TILES_TYPE = 3 # [1.7]
MODE7_ALWAYS_DRAW_TILES_ON_MAP = 0 # [1.7] |