File Parser for levels #18

Merged
tonitch merged 29 commits from MapParser into master 2023-04-21 20:00:16 +02:00
2 changed files with 43 additions and 1 deletions
Showing only changes of commit 0ea7829588 - Show all commits

View File

@ -3,4 +3,8 @@
# Rapports
- [Première entrevue](./rapports/130223.md)
- [Deuxième entrevue](./rapports/200223.md)
- [Deuxième entrevue](./rapports/200223.md)
# Specification
- [File Parser](./spec/FileParser.md)

View 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! :-)