Adding Documentation for parser in jdb
Signed-off-by: Anthony Debucquoy <debucquoy.anthony@gmail.com>
This commit is contained in:
parent
e1d9a002e9
commit
0ea7829588
@ -3,4 +3,8 @@
|
|||||||
# Rapports
|
# Rapports
|
||||||
|
|
||||||
- [Première entrevue](./rapports/130223.md)
|
- [Première entrevue](./rapports/130223.md)
|
||||||
- [Deuxième entrevue](./rapports/200223.md)
|
- [Deuxième entrevue](./rapports/200223.md)
|
||||||
|
|
||||||
|
# Specification
|
||||||
|
|
||||||
|
- [File Parser](./spec/FileParser.md)
|
38
JournalDeBord/src/spec/FileParser.md
Normal file
38
JournalDeBord/src/spec/FileParser.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
title: File Parser
|
||||||
|
author: Debucquoy Anthony (tonitch)
|
||||||
|
date: 5 March 2023
|
||||||
|
---
|
||||||
|
# File Parser Specification
|
||||||
|
|
||||||
|
For the Project, I wanted to challenge myself, I decided to do my own file parser with my own specification that would
|
||||||
|
have the special objective of being really small.
|
||||||
|
|
||||||
|
## The File format
|
||||||
|
|
||||||
|
The file would use the .level file extension.
|
||||||
|
|
||||||
|
The file could contain anything, the used data is enclosed in between an header and a parser.
|
||||||
|
This could be used to add Music, images and other stuff in the level file for instance
|
||||||
|
|
||||||
|
Only one Header and One Footer should be present in the file.
|
||||||
|
The parser will only read the first one it finds so to avoid problem, it is best practise to put the
|
||||||
|
level data at the top of the file.
|
||||||
|
|
||||||
|
- The HEADER will be defined by the characters 'S', 'M', 'S'
|
||||||
|
- The FOOTER will be defined by the characters 'S', 'M', 'E'
|
||||||
|
- The bytes in between are the level data
|
||||||
|
- byte 1: Width of the map
|
||||||
|
- byte 2: Height of the map
|
||||||
|
- bytes 3 -> Width * Height (+1 if Width * Height % 8 is not 0)
|
||||||
|
- byte after Map Data: Pieces amount
|
||||||
|
- for each pieces
|
||||||
|
- 1 byte: size of the piece
|
||||||
|
- 4 first bits : width
|
||||||
|
- 4 last bits: height
|
||||||
|
- next bytes -> Width * Height (+1 if Width * Height % 8 is not 0)
|
||||||
|
|
||||||
|
## Known Limitation
|
||||||
|
|
||||||
|
1) by putting the piece size on one byte. We limit the maximum piece size to 15 x 15 (1111 | 1111)
|
||||||
|
I don't think we will ever need a piece larger than 5x5 so this is clearly a feature, not a bug! :-)
|
Loading…
Reference in New Issue
Block a user