BackupGGCode / open-source-spin-compiler

A C/C++-based port of the Parallax Propeller Spin/PASM Compiler
0 stars 0 forks source link

Directory support for object inclusion #30

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
There really needs to be support for directories with Spin object inclusion. I 
have a lot of applications that use a lot of spin files that are generated by 
tools, for things like graphics, music, etc.

In any other language, this would be very manageable. Code could be nicely 
organized, and projects could refer to a common repository of assets no problem.

.
├── gfx
│   ├── effects
│   │   ├── boom.png
│   │   ├── gfx_boom.spin
│   │   ├── gfx_pixmain.spin
│   │   ├── gfx_starmap.spin
│   │   ├── pixmain.png
│   │   └── starmap.png
│   ├── enemies
│   │   ├── gfx_ibot.spin
│   │   ├── gfx_idrone.spin
│   │   ├── gfx_macrosoth.spin
│   │   ├── gfx_tank.spin
│   │   ├── ibot.png
│   │   ├── idrone.png
│   │   ├── macrosoth.png
│   │   └── tank.png
│   ├── fonts
│   │   ├── chars_cropped.png
│   │   └── gfx_chars_cropped.spin
│   ├── player
│   │   ├── gfx_head.spin
│   │   ├── gfx_healthbar.spin
│   │   ├── gfx_player_small.spin
│   │   ├── head.png
│   │   ├── healthbar.png
│   │   ├── player.png
│   │   └── player_small.png
│   ├── tilesets
│   │   ├── gfx_tiles_pixel.spin
│   │   ├── tiles_pixel_collision.png
│   │   └── tiles_pixel.png
│   └── weapons
│       ├── bullet.png
│       ├── gfx_bullet.spin
│       ├── gfx_laser.spin
│       └── laser.png
├── maps
│   └── map_pixel.tmx
├── music
│   └── pixel_theme.song
├── piXel.spin
└── proj
    ├── piXel.binary
    ├── piXel.side
    └── tags

Because because OBJ definitions don't support paths at all, every project 
basically looks like this.

boom.png
bullet.png
chars_cropped.png
gfx_boom.spin
gfx_bullet.spin
gfx_chars_cropped.spin
gfx_head.spin
gfx_healthbar.spin
gfx_ibot.spin
gfx_idrone.spin
gfx_laser.spin
gfx_macrosoth.spin
gfx_pixmain.spin
gfx_player_small.spin
gfx_starmap.spin
gfx_tank.spin
gfx_tiles_pixel.spin
head.png
healthbar.png
ibot.png
idrone.png
laser.png
macrosoth.png
map_pixel.tmx
piXel.binary
piXel.side
piXel.spin
pixel_theme.song
pixmain.png
player.png
player_small.png
starmap.png
tags
tank.png
tiles_pixel_collision.png
tiles_pixel.png

Which becomes quite unmanageable; any game that uses, say, bullet.png, has to 
have its own copy of gfx_bullet.spin, and must be regenerated in every project 
every time that graphic changes. It's not maintainable at all.

The lack of this feature makes automated content generation tools difficult to 
use effectively, projects difficult to organize, makes code sharing or common 
media folders impossible, and holds back the language in general.

Original issue reported on code.google.com by brett.m....@gmail.com on 2 Jun 2014 at 6:15