mirror of https://github.com/pmret/papermario.git
				
				
				
			Create simple data "migration" script (#548)
* setup function * cleanup parts of calc_item_damage_enemy * init data2c * clean up data2c.py * . * rename and update script to have additional functionality * .
This commit is contained in:
		
							parent
							
								
									d9c72e432b
								
							
						
					
					
						commit
						c719faf847
					
				| 
						 | 
				
			
			@ -15,6 +15,7 @@ expected/
 | 
			
		|||
/ver/current
 | 
			
		||||
/ver/*/assets
 | 
			
		||||
ctx.c.m2c
 | 
			
		||||
/data2c
 | 
			
		||||
 | 
			
		||||
# Build artifacts
 | 
			
		||||
build.ninja
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -505,7 +505,7 @@ enum SoundIDs {
 | 
			
		|||
    SOUND_E3                        = 0x000000E3,
 | 
			
		||||
    SOUND_E7                        = 0x000000E7,
 | 
			
		||||
    SOUND_E9                        = 0x000000E9,
 | 
			
		||||
    SOUND_EA                        = 0x000000EA,
 | 
			
		||||
    SOUND_FIRE                      = 0x000000EA,
 | 
			
		||||
    SOUND_FREEZE                    = 0x000000EB,
 | 
			
		||||
    SOUND_10C                       = 0x0000010C,
 | 
			
		||||
    SOUND_10D                       = 0x0000010D,
 | 
			
		||||
| 
						 | 
				
			
			@ -576,7 +576,7 @@ enum SoundIDs {
 | 
			
		|||
    SOUND_UNKNOWN_377               = 0x00000377,
 | 
			
		||||
    SOUND_UNKNOWN_379               = 0x00000379,
 | 
			
		||||
    SOUND_37A                       = 0x0000037A,
 | 
			
		||||
    SOUND_37B                       = 0x0000037B,
 | 
			
		||||
    SOUND_ELECTRIC                  = 0x0000037B,
 | 
			
		||||
    SOUND_GENERAL_WHISTLE           = 0x00000395,
 | 
			
		||||
    SOUND_OPEN_SHELL                = 0x000003D4,
 | 
			
		||||
    SOUND_JUMP_3E2                  = 0x000003E2,
 | 
			
		||||
| 
						 | 
				
			
			@ -1513,6 +1513,7 @@ enum DamageTypes {
 | 
			
		|||
    DAMAGE_TYPE_POW                        = 0x00000400,
 | 
			
		||||
    DAMAGE_TYPE_QUAKE                      = 0x00000800,
 | 
			
		||||
    DAMAGE_TYPE_FEAR                       = 0x00001000,
 | 
			
		||||
    DAMAGE_TYPE_2000                       = 0x00002000,
 | 
			
		||||
    DAMAGE_TYPE_4000                       = 0x00004000,
 | 
			
		||||
    DAMAGE_TYPE_AIR_LIFT                   = 0x00008000,
 | 
			
		||||
    DAMAGE_TYPE_SPINY_SURGE                = 0x00010000,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -591,4 +591,7 @@ void clear_player_data(void);
 | 
			
		|||
 | 
			
		||||
void enforce_hpfp_limits(void);
 | 
			
		||||
 | 
			
		||||
void func_8024EFE0(f32 x, f32 y, f32 z, s32 a, s32 b, s32 c);
 | 
			
		||||
void func_802664DC(f32 x, f32 y, f32 z, s32 attack, s32 a);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										85
									
								
								src/17FEB0.c
								
								
								
								
							
							
						
						
									
										85
									
								
								src/17FEB0.c
								
								
								
								
							| 
						 | 
				
			
			@ -1,4 +1,7 @@
 | 
			
		|||
#include "common.h"
 | 
			
		||||
#include "battle/battle.h"
 | 
			
		||||
#include "script_api/battle.h"
 | 
			
		||||
#include "effects.h"
 | 
			
		||||
 | 
			
		||||
s32 calc_item_check_hit(void) {
 | 
			
		||||
    BattleStatus* battleStatus = &gBattleStatus;
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +29,7 @@ s32 calc_item_check_hit(void) {
 | 
			
		|||
                sfx_play_sound_at_position(0x10C, 0, walk->goalPos.x, walk->goalPos.y, walk->goalPos.z);
 | 
			
		||||
                return HIT_RESULT_IMMUNE;
 | 
			
		||||
            }
 | 
			
		||||
            if ((battleStatus->currentAttackElement & 0x80) && (actorPart->eventFlags & ACTOR_EVENT_FLAG_SPIKY_TOP)) {
 | 
			
		||||
            if ((battleStatus->currentAttackElement & DAMAGE_TYPE_JUMP) && (actorPart->eventFlags & ACTOR_EVENT_FLAG_SPIKY_TOP)) {
 | 
			
		||||
                sfx_play_sound_at_position(0xE9, 0, walk->goalPos.x, walk->goalPos.y, walk->goalPos.z);
 | 
			
		||||
                return HIT_RESULT_LANDED_ON_SPIKE;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -55,31 +58,31 @@ ApiStatus ItemDamageEnemy(Evt* script, s32 isInitialCall) {
 | 
			
		|||
    a5 = *args++;
 | 
			
		||||
 | 
			
		||||
    if ((a5 & 0x30) == 0x30) {
 | 
			
		||||
        battleStatus->flags1 |= 0x30;
 | 
			
		||||
        gBattleStatus.flags1 |= (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE);
 | 
			
		||||
    } else if (a5 & flag) {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 | flag) & ~0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 | flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    } else if (a5 & 0x20) {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 & ~flag) | 0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) | BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    } else {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 & ~flag) & ~0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x40) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x40;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_40;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x40;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_40;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x200) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x200;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_200;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x200;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_200;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x80) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x80;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_80;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x80;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_80;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    actor = get_actor(script->owner1.actorID);
 | 
			
		||||
| 
						 | 
				
			
			@ -123,31 +126,31 @@ ApiStatus ItemAfflictEnemy(Evt* script, s32 isInitialCall) {
 | 
			
		|||
    a5 = *args++;
 | 
			
		||||
 | 
			
		||||
    if ((a5 & 0x30) == 0x30) {
 | 
			
		||||
        battleStatus->flags1 |= 0x30;
 | 
			
		||||
        gBattleStatus.flags1 |= (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE);
 | 
			
		||||
    } else if (a5 & flag) {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 | flag) & ~0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 | flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    } else if (a5 & 0x20) {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 & ~flag) | 0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) | BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    } else {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 & ~flag) & ~0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x40) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x40;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_40;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x40;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_40;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x200) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x200;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_200;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x200;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_200;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x80) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x80;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_80;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x80;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_80;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    actor = get_actor(script->owner1.actorID);
 | 
			
		||||
| 
						 | 
				
			
			@ -190,31 +193,31 @@ ApiStatus func_80252B3C(Evt* script, s32 isInitialCall) {
 | 
			
		|||
    a5 = *args++;
 | 
			
		||||
 | 
			
		||||
    if ((a5 & 0x30) == 0x30) {
 | 
			
		||||
        battleStatus->flags1 |= 0x30;
 | 
			
		||||
        gBattleStatus.flags1 |= (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE);
 | 
			
		||||
    } else if (a5 & flag) {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 | flag) & ~0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 | flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    } else if (a5 & 0x20) {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 & ~flag) | 0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) | BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    } else {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 & ~flag) & ~0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x40) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x40;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_40;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x40;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_40;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x200) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x200;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_200;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x200;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_200;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x80) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x80;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_80;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x80;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_80;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    actor = get_actor(script->owner1.actorID);
 | 
			
		||||
| 
						 | 
				
			
			@ -257,31 +260,31 @@ ApiStatus ItemCheckHit(Evt* script, s32 isInitialCall) {
 | 
			
		|||
    a5 = *args++;
 | 
			
		||||
 | 
			
		||||
    if ((a5 & 0x30) == 0x30) {
 | 
			
		||||
        battleStatus->flags1 |= 0x30;
 | 
			
		||||
        gBattleStatus.flags1 |= (BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE);
 | 
			
		||||
    } else if (a5 & flag) {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 | flag) & ~0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 | flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    } else if (a5 & 0x20) {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 & ~flag) | 0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) | BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    } else {
 | 
			
		||||
        battleStatus->flags1 = (battleStatus->flags1 & ~flag) & ~0x20;
 | 
			
		||||
        gBattleStatus.flags1 = (gBattleStatus.flags1 & ~flag) & ~BS_FLAGS1_SP_EVT_ACTIVE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x40) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x40;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_40;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x40;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_40;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x200) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x200;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_200;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x200;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_200;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (a5 & 0x80) {
 | 
			
		||||
        gBattleStatus.flags1 |= 0x80;
 | 
			
		||||
        gBattleStatus.flags1 |= BS_FLAGS1_80;
 | 
			
		||||
    } else {
 | 
			
		||||
        gBattleStatus.flags1 &= ~0x80;
 | 
			
		||||
        gBattleStatus.flags1 &= ~BS_FLAGS1_80;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    actor = get_actor(script->owner1.actorID);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								src/1A5830.c
								
								
								
								
							
							
						
						
									
										10
									
								
								src/1A5830.c
								
								
								
								
							| 
						 | 
				
			
			@ -72,10 +72,10 @@ void play_hit_sound(Actor* actor, f32 x, f32 y, f32 z, u32 hitSound) {
 | 
			
		|||
                    sfx_play_sound_at_position(SOUND_E2, 0, x, y, z);
 | 
			
		||||
                    break;
 | 
			
		||||
                case ACTOR_PARTNER:
 | 
			
		||||
                    sfx_play_sound_at_position(SOUND_EA, 0, x, y, z);
 | 
			
		||||
                    sfx_play_sound_at_position(SOUND_FIRE, 0, x, y, z);
 | 
			
		||||
                    break;
 | 
			
		||||
                case ACTOR_ENEMY0:
 | 
			
		||||
                    sfx_play_sound_at_position(SOUND_EA, 0, x, y, z);
 | 
			
		||||
                    sfx_play_sound_at_position(SOUND_FIRE, 0, x, y, z);
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			@ -98,10 +98,10 @@ void play_hit_sound(Actor* actor, f32 x, f32 y, f32 z, u32 hitSound) {
 | 
			
		|||
                    sfx_play_sound_at_position(SOUND_37A, 0, x, y, z);
 | 
			
		||||
                    break;
 | 
			
		||||
                case ACTOR_PARTNER:
 | 
			
		||||
                    sfx_play_sound_at_position(SOUND_37B, 0, x, y, z);
 | 
			
		||||
                    sfx_play_sound_at_position(SOUND_ELECTRIC, 0, x, y, z);
 | 
			
		||||
                    break;
 | 
			
		||||
                case ACTOR_ENEMY0:
 | 
			
		||||
                    sfx_play_sound_at_position(SOUND_37B, 0, x, y, z);
 | 
			
		||||
                    sfx_play_sound_at_position(SOUND_ELECTRIC, 0, x, y, z);
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			@ -791,7 +791,7 @@ s32 calc_enemy_damage_target(Actor* attacker) {
 | 
			
		|||
        && !has_enchanted_part(attacker)
 | 
			
		||||
    ) {
 | 
			
		||||
        // enum mismatch? shock vs explode :raised_eyebrow:
 | 
			
		||||
        sfx_play_sound_at_position(SOUND_37B, 0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
 | 
			
		||||
        sfx_play_sound_at_position(SOUND_ELECTRIC, 0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
 | 
			
		||||
        func_80251474(attacker);
 | 
			
		||||
        dispatch_damage_event_actor_1(attacker, 1, EVENT_SHOCK_HIT);
 | 
			
		||||
        return HIT_RESULT_TRIGGERED_EXPLODE;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,94 @@
 | 
			
		|||
#!/usr/bin/python3
 | 
			
		||||
 | 
			
		||||
import re
 | 
			
		||||
import os
 | 
			
		||||
import argparse
 | 
			
		||||
 | 
			
		||||
data_dir = os.path.dirname(os.path.realpath(__file__)) + "/../ver/current/asm/data/"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def find_dir(query):
 | 
			
		||||
    for root, dirs, files in os.walk(data_dir):
 | 
			
		||||
        for f in files:
 | 
			
		||||
            if f == query:
 | 
			
		||||
                return os.path.join(root, f)
 | 
			
		||||
    return None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def data_to_c(file_path):
 | 
			
		||||
    file = open(file_path)
 | 
			
		||||
    s = file.read()
 | 
			
		||||
 | 
			
		||||
    output = ""
 | 
			
		||||
    pattern = re.compile(r"(dlabel (D_.*)\n.(\w+) (.*))")
 | 
			
		||||
 | 
			
		||||
    for (all, symbol, type, data) in re.findall(pattern, s):
 | 
			
		||||
        if type == "word":
 | 
			
		||||
            output += "s32 " + symbol + "[] = {" + data + "};\n\n"
 | 
			
		||||
        elif type == "byte":
 | 
			
		||||
            output += "s8 " + symbol + "[] = {" + data + "};\n\n"
 | 
			
		||||
        else:
 | 
			
		||||
            output += all + "\n\n"
 | 
			
		||||
 | 
			
		||||
    file.close()
 | 
			
		||||
    return output
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def out_to_file(output, file_path):
 | 
			
		||||
    output_dir = os.path.join(os.getcwd(), "data2c")
 | 
			
		||||
    if not os.path.exists(output_dir):
 | 
			
		||||
        os.mkdir(output_dir)
 | 
			
		||||
 | 
			
		||||
    file_name = file_path[file_path.rfind("/"):-7]
 | 
			
		||||
    file = open("data2c/" + file_name + ".c", "w+")
 | 
			
		||||
    file.write(output)
 | 
			
		||||
    file.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_all():
 | 
			
		||||
    for root, dirs, files in os.walk(data_dir):
 | 
			
		||||
        for f in files:
 | 
			
		||||
            file_path = os.fspath(os.path.join(root, f))
 | 
			
		||||
            out_to_file(data_to_c(file_path), file_path)
 | 
			
		||||
 | 
			
		||||
    print("Files have been translated successfully and stored at " + os.getcwd() + "/data2c/")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def query(file, to_file):
 | 
			
		||||
    for root, dirs, files in os.walk(data_dir):
 | 
			
		||||
        for f in files:
 | 
			
		||||
            if f == file:
 | 
			
		||||
                file_path = os.fspath(os.path.join(root, f))
 | 
			
		||||
                output = data_to_c(file_path)
 | 
			
		||||
 | 
			
		||||
                if to_file is True:
 | 
			
		||||
                    out_to_file(output, file_path)
 | 
			
		||||
                else:
 | 
			
		||||
                    print(output)
 | 
			
		||||
                return
 | 
			
		||||
 | 
			
		||||
    print("File not found: " + file)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
parser = argparse.ArgumentParser(description="Tool to translate .data.s files to data arrays")
 | 
			
		||||
parser.add_argument("query", help="data file", nargs='?', default=None)
 | 
			
		||||
parser.add_argument("--all", help="translate all data files at once and output them into /data2c", action='store_true', required=False)
 | 
			
		||||
parser.add_argument("--to-file", help="redirect the output into a file. Can not be used in combination with --all", action='store_true', required=False)
 | 
			
		||||
 | 
			
		||||
args = parser.parse_args()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if args.query is None and args.all is False and args.to_file is False:
 | 
			
		||||
    parser.print_help()
 | 
			
		||||
    exit()
 | 
			
		||||
 | 
			
		||||
if args.query is not None and not args.query.endswith(".data.s"):
 | 
			
		||||
    args.query = args.query + ".data.s"
 | 
			
		||||
 | 
			
		||||
if args.all is False:
 | 
			
		||||
    if args.to_file is True:
 | 
			
		||||
        query(args.query, True)
 | 
			
		||||
    else:
 | 
			
		||||
        query(args.query, False)
 | 
			
		||||
else:
 | 
			
		||||
    get_all()
 | 
			
		||||
		Loading…
	
		Reference in New Issue