diff --git a/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/MainActivity.kt b/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/MainActivity.kt index d422633..326f3c0 100644 --- a/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/MainActivity.kt +++ b/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/MainActivity.kt @@ -12,9 +12,12 @@ import android.content.res.ColorStateList import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.view.Choreographer +import android.widget.AdapterView +import android.widget.ArrayAdapter import android.widget.Button import android.widget.ImageView import android.widget.ScrollView +import android.widget.Spinner import android.widget.TextView import android.widget.Toast import androidx.activity.result.ActivityResultLauncher @@ -64,6 +67,24 @@ class MainActivity : AppCompatActivity() { // ---- disk slots --------------------------------------------------------- + // ---- D64 helpers (shared by createBlankD64 and the hero editor) ---------- + + private val d64Spt = intArrayOf( + 0, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 19, 19, 19, 19, 19, 19, 19, + 18, 18, 18, 18, 18, 18, + 17, 17, 17, 17, 17 + ) + + private fun d64Off(track: Int, sector: Int): Int { + var off = 0 + for (t in 1 until track) off += d64Spt[t] * 256 + return off + sector * 256 + } + + // ---- disk slots --------------------------------------------------------- + private val diskSlots = listOf( DiskSlot(1, 'A', R.id.btn_ep_1a, "Folge 1: Das geheimnisvolle Kraut"), DiskSlot(1, 'B', R.id.btn_ep_1b, "Folge 2: Der unheimliche Tempel"), @@ -77,8 +98,9 @@ class MainActivity : AppCompatActivity() { DiskSlot(0, ' ', R.id.btn_hero_2, "Held 2", "HELD2.D64"), DiskSlot(0, ' ', R.id.btn_hero_3, "Held 3", "HELD3.D64"), ) - private val episodeButtons = mutableMapOf() - private val loadedADisks = mutableSetOf() + private val episodeButtons = mutableMapOf() + private val heroEditButtons = mutableMapOf() + private val loadedADisks = mutableSetOf() private var activeSlot: DiskSlot? = null private var currentDiskPath: String? = null // path last passed to engine.loadDisk() @@ -187,6 +209,17 @@ class MainActivity : AppCompatActivity() { findViewById