Skip to content

Instantly share code, notes, and snippets.

@huderlem
huderlem / map_constants_update.py
Last active September 3, 2022 19:43
Update new map constants
# This script will apply the same changes to your project as this PR: https://github.com/pret/pokeemerald/pull/1755/files
# You can run this before or after merging with upstream pret, so that your project's custom code and data are updated appropriately.
# To run this script:
# - Place this file in the root of your project. For example, pokeemearld/map_constants_update.py
# - Run "python map_constants_update.py"
import re
import glob
# 1. In map.json files, convert "dest_warp_id" to string value instead of integer. 127 becomes "WARP_ID_DYNAMIC". 126 becomes "WARP_ID_SECRET_BASE."
@huderlem
huderlem / style-guide.md
Created June 12, 2018 22:37
pokeruby/pokeemerald style guide

Style Guide - pokeruby/pokeemerald

Version 0.1

Comments

When describing a system/component in-depth, use block comment syntax.

/*
 * This is an in-depth description of the save block format. Its format is as follows:
 *
 * Sectors  0 - 13: Save Slot 1
@huderlem
huderlem / regionmapgen.py
Created July 28, 2020 22:34
Region map generator
# This is a hacky thrown-together script that procedurally
# generates Gen-3 Pokemon region map images. I intend to build
# an online tool to facilitate this, but this is the first
# proof of concept.
#
# Requires the opensimplix, Pillow, and scikit-learn:
# pip install opensimplex
# pip install Pillow
# pip install -U scikit-learn
# pokemap2json.py
# This script will process a pokeruby or pokeemerald project and generate the map data JSON files for it.
# It creates:
# data/maps/map_groups.json
# data/layouts/layouts.json
# data/maps/<map_name>/map.json
#
# In order to convert your project to use the new JSON map data, perform the following steps:
# 1. Run pokemap2json.py on your project.
# Example: "python pokemap2json.py emerald path/to/my/project"
@huderlem
huderlem / dump-carrot-crazy-level-image.go
Created February 20, 2020 15:20
Generates a full image of a level in Looney Tunes: Carrot Crazy
package main
import (
"encoding/binary"
"image"
"image/color"
"image/draw"
"image/png"
"io/ioutil"
"os"
const (
copyByte = iota
copyBackReference
copyPairs
)
type command struct {
action int
length int
distance int
package main
import (
"bytes"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strings"
)
script BugContestOfficer_EnterContest
{
if (var(VAR_BUG_CONTEST_PRIZE) != ITEM_NONE) {
bufferitemname(0, VAR_BUG_CONTEST_PRIZE)
msgbox(BugContestOfficer_Text_GivePrizeItem)
giveitem_std(VAR_BUG_CONTEST_PRIZE)
if (var(VAR_RESULT)) {
setvar(VAR_BUG_CONTEST_PRIZE, ITEM_NONE)
} else {
msgbox(BugContestOfficer_Text_NoRoomInBag)
# pokemap2json.py
# This script will process a pokeemerald project and generate the wild encounters JSON data for it.
# It creates:
# src/data/wild_encounters.json
#
# In order to convert your project's existing data from src/data/wild_encounters.h:
# 1. Merge pret/master.
# 2. Run wildencounters2json.py on your project.
# Example: "python wildencounters2json.py path/to/my/project"
# 3. Commit the src/data/wild_encounters.json file it creates.
# This script will convert some map json fields from integers to strings.
# Place this script in data/maps directory, and run it.
# python 3 version of the script
import re
import glob
for filepath in glob.iglob('./**/map.json', recursive=True):
with open(filepath) as file: