diff --git a/Cozette.sfd b/Cozette.sfd index 89b6662..805df70 100644 --- a/Cozette.sfd +++ b/Cozette.sfd @@ -1,7 +1,7 @@ SplineFontDB: 3.2 -FontName: Cozette -FullName: Cozette -FamilyName: Cozette +FontName: Cozette8Wide +FullName: Cozette8Wide +FamilyName: Cozette8Wide Weight: Medium Copyright: (c) 2020-2023 Slavfox UComments: "2024-2-11: Created with FontForge (http://fontforge.org)" @@ -22,7 +22,7 @@ OS2Version: 0 OS2_WeightWidthSlopeOnly: 0 OS2_UseTypoMetrics: 1 CreationTime: 1707687904 -ModificationTime: 1707715626 +ModificationTime: 1707765434 OS2TypoAscent: 0 OS2TypoAOffset: 1 OS2TypoDescent: 0 @@ -36,6 +36,7 @@ HheadAscent: 0 HheadAOffset: 1 HheadDescent: 0 HheadDOffset: 1 +MarkAttachClasses: 1 DEI: 91125 Encoding: UnicodeInterp: none @@ -43,1287 +44,1295 @@ NameList: AGL For New Fonts DisplaySize: 13 AntiAlias: 1 FitToEm: 0 -WinInfo: 0 32 14 +WinInfo: 0 32 11 OnlyBitmaps: 1 -BeginChars: 318 190 +BeginPrivate: 0 +EndPrivate +BeginChars: 319 191 StartChar: uni0295 Encoding: 0 661 0 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni0097 -Encoding: 1 151 1 -Width: 500 +Encoding: 256 151 1 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni1D25 Encoding: 2 7461 2 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni0294 Encoding: 3 660 3 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2661 Encoding: 4 9825 4 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: heart Encoding: 5 9829 5 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2B50 Encoding: 6 11088 6 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni272D Encoding: 7 10029 7 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uniF005 -Encoding: 256 61445 8 +Encoding: 257 61445 8 Width: 1000 LayerCount: 2 EndChar StartChar: uni2726 -Encoding: 257 10022 9 +Encoding: 258 10022 9 Width: 1000 LayerCount: 2 EndChar StartChar: uni2728 -Encoding: 258 10024 10 +Encoding: 259 10024 10 Width: 1000 LayerCount: 2 EndChar StartChar: female Encoding: 8 9792 11 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: male Encoding: 9 9794 12 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni26A2 -Encoding: 259 9890 13 +Encoding: 260 9890 13 Width: 1000 LayerCount: 2 EndChar StartChar: uni26A3 -Encoding: 260 9891 14 +Encoding: 261 9891 14 Width: 1000 LayerCount: 2 EndChar StartChar: uni26A5 -Encoding: 261 9893 15 +Encoding: 262 9893 15 Width: 1000 LayerCount: 2 EndChar StartChar: uni2669 Encoding: 10 9833 16 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: musicalnote Encoding: 11 9834 17 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: musicalnotedbl Encoding: 12 9835 18 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni266C -Encoding: 262 9836 19 +Encoding: 263 9836 19 Width: 1000 LayerCount: 2 EndChar StartChar: space Encoding: 32 32 20 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: exclam Encoding: 33 33 21 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: quotedbl Encoding: 34 34 22 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: numbersign Encoding: 35 35 23 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: dollar Encoding: 36 36 24 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: percent Encoding: 37 37 25 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: ampersand Encoding: 38 38 26 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: quotesingle Encoding: 39 39 27 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: parenleft Encoding: 40 40 28 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: parenright Encoding: 41 41 29 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: asterisk Encoding: 42 42 30 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: plus Encoding: 43 43 31 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: comma Encoding: 44 44 32 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: hyphen Encoding: 45 45 33 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: period Encoding: 46 46 34 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: slash Encoding: 47 47 35 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: zero Encoding: 48 48 36 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: one Encoding: 49 49 37 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: two Encoding: 50 50 38 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: three Encoding: 51 51 39 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: four Encoding: 52 52 40 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: five Encoding: 53 53 41 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: six Encoding: 54 54 42 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: seven Encoding: 55 55 43 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: eight Encoding: 56 56 44 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: nine Encoding: 57 57 45 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: colon Encoding: 58 58 46 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: semicolon Encoding: 59 59 47 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: less Encoding: 60 60 48 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: equal Encoding: 61 61 49 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: greater Encoding: 62 62 50 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: question Encoding: 63 63 51 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: at Encoding: 64 64 52 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: A Encoding: 65 65 53 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: B Encoding: 66 66 54 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: C Encoding: 67 67 55 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: D Encoding: 68 68 56 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: E Encoding: 69 69 57 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: F Encoding: 70 70 58 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: G Encoding: 71 71 59 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: H Encoding: 72 72 60 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: I Encoding: 73 73 61 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: J Encoding: 74 74 62 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: K Encoding: 75 75 63 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: L Encoding: 76 76 64 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: M Encoding: 77 77 65 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: N Encoding: 78 78 66 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: O Encoding: 79 79 67 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: P Encoding: 80 80 68 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: Q Encoding: 81 81 69 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: R Encoding: 82 82 70 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: S Encoding: 83 83 71 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: T Encoding: 84 84 72 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: U Encoding: 85 85 73 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: V Encoding: 86 86 74 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: W Encoding: 87 87 75 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: X Encoding: 88 88 76 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: Y Encoding: 89 89 77 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: Z Encoding: 90 90 78 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: bracketleft Encoding: 91 91 79 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: backslash Encoding: 92 92 80 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: bracketright Encoding: 93 93 81 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: asciicircum Encoding: 94 94 82 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: underscore Encoding: 95 95 83 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: grave Encoding: 96 96 84 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: a Encoding: 97 97 85 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: b Encoding: 98 98 86 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: c Encoding: 99 99 87 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: d Encoding: 100 100 88 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: e Encoding: 101 101 89 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: f Encoding: 102 102 90 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: g Encoding: 103 103 91 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: h Encoding: 104 104 92 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: i Encoding: 105 105 93 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: j Encoding: 106 106 94 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: k Encoding: 107 107 95 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: l Encoding: 108 108 96 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: m Encoding: 109 109 97 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: n Encoding: 110 110 98 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: o Encoding: 111 111 99 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: p Encoding: 112 112 100 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: q Encoding: 113 113 101 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: r Encoding: 114 114 102 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: s Encoding: 115 115 103 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: t Encoding: 116 116 104 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: u Encoding: 117 117 105 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: v Encoding: 118 118 106 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: w Encoding: 119 119 107 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: x Encoding: 120 120 108 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: y Encoding: 121 121 109 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: z Encoding: 122 122 110 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: braceleft Encoding: 123 123 111 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: bar Encoding: 124 124 112 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: braceright Encoding: 125 125 113 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: asciitilde Encoding: 126 126 114 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF100000 Encoding: 13 9472 115 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF110000 Encoding: 14 9474 116 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF010000 Encoding: 15 9484 117 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF020000 Encoding: 16 9492 118 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF080000 Encoding: 17 9500 119 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF090000 Encoding: 18 9508 120 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF060000 Encoding: 19 9516 121 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF070000 Encoding: 20 9524 122 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: SF050000 Encoding: 21 9532 123 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni256D -Encoding: 263 9581 124 +Encoding: 264 9581 124 Width: 1000 LayerCount: 2 EndChar StartChar: uni256E -Encoding: 264 9582 125 +Encoding: 265 9582 125 Width: 1000 LayerCount: 2 EndChar StartChar: uni256F -Encoding: 265 9583 126 +Encoding: 266 9583 126 Width: 1000 LayerCount: 2 EndChar StartChar: uni2570 -Encoding: 266 9584 127 +Encoding: 267 9584 127 Width: 1000 LayerCount: 2 EndChar StartChar: uni2571 -Encoding: 267 9585 128 +Encoding: 268 9585 128 Width: 1000 LayerCount: 2 EndChar StartChar: uni2572 -Encoding: 268 9586 129 +Encoding: 269 9586 129 Width: 1000 LayerCount: 2 EndChar StartChar: uni2573 -Encoding: 269 9587 130 +Encoding: 270 9587 130 Width: 1000 LayerCount: 2 EndChar StartChar: SF430000 -Encoding: 270 9552 131 +Encoding: 271 9552 131 Width: 1000 LayerCount: 2 EndChar StartChar: SF240000 -Encoding: 271 9553 132 +Encoding: 272 9553 132 Width: 1000 LayerCount: 2 EndChar StartChar: SF390000 -Encoding: 272 9556 133 +Encoding: 273 9556 133 Width: 1000 LayerCount: 2 EndChar StartChar: SF250000 -Encoding: 273 9559 134 +Encoding: 274 9559 134 Width: 1000 LayerCount: 2 EndChar StartChar: SF380000 -Encoding: 274 9562 135 +Encoding: 275 9562 135 Width: 1000 LayerCount: 2 EndChar StartChar: SF260000 -Encoding: 275 9565 136 +Encoding: 276 9565 136 Width: 1000 LayerCount: 2 EndChar StartChar: SF420000 -Encoding: 276 9568 137 +Encoding: 277 9568 137 Width: 1000 LayerCount: 2 EndChar StartChar: SF230000 -Encoding: 277 9571 138 +Encoding: 278 9571 138 Width: 1000 LayerCount: 2 EndChar StartChar: SF410000 -Encoding: 278 9574 139 +Encoding: 279 9574 139 Width: 1000 LayerCount: 2 EndChar StartChar: SF400000 -Encoding: 279 9577 140 +Encoding: 280 9577 140 Width: 1000 LayerCount: 2 EndChar StartChar: SF440000 -Encoding: 280 9580 141 +Encoding: 281 9580 141 Width: 1000 LayerCount: 2 EndChar StartChar: uniE0B0 -Encoding: 281 57520 142 +Encoding: 282 57520 142 Width: 1000 LayerCount: 2 EndChar StartChar: uniE0B2 -Encoding: 282 57522 143 +Encoding: 283 57522 143 Width: 1000 LayerCount: 2 EndChar StartChar: uniE0B4 -Encoding: 283 57524 144 +Encoding: 284 57524 144 Width: 1000 LayerCount: 2 EndChar StartChar: uniE0B6 -Encoding: 284 57526 145 +Encoding: 285 57526 145 Width: 1000 LayerCount: 2 EndChar StartChar: uniE0B8 -Encoding: 285 57528 146 +Encoding: 286 57528 146 Width: 1000 LayerCount: 2 EndChar StartChar: uniE0BA -Encoding: 286 57530 147 +Encoding: 287 57530 147 Width: 1000 LayerCount: 2 EndChar StartChar: uniE0BC -Encoding: 287 57532 148 +Encoding: 288 57532 148 Width: 1000 LayerCount: 2 EndChar StartChar: uniE0BE -Encoding: 288 57534 149 +Encoding: 289 57534 149 Width: 1000 LayerCount: 2 EndChar StartChar: uni2581 Encoding: 25 9601 150 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2582 Encoding: 26 9602 151 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2583 Encoding: 27 9603 152 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: dnblock Encoding: 28 9604 153 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2585 Encoding: 29 9605 154 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2586 Encoding: 30 9606 155 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2587 Encoding: 31 9607 156 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: block Encoding: 127 9608 157 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2589 -Encoding: 289 9609 158 +Encoding: 290 9609 158 Width: 1000 LayerCount: 2 EndChar StartChar: uni258A -Encoding: 290 9610 159 +Encoding: 291 9610 159 Width: 1000 LayerCount: 2 EndChar StartChar: uni258B -Encoding: 291 9611 160 +Encoding: 292 9611 160 Width: 1000 LayerCount: 2 EndChar StartChar: lfblock -Encoding: 292 9612 161 +Encoding: 293 9612 161 Width: 1000 LayerCount: 2 EndChar StartChar: uni258D -Encoding: 293 9613 162 +Encoding: 294 9613 162 Width: 1000 LayerCount: 2 EndChar StartChar: uni258E -Encoding: 294 9614 163 +Encoding: 295 9614 163 Width: 1000 LayerCount: 2 EndChar StartChar: uni258F -Encoding: 295 9615 164 +Encoding: 296 9615 164 Width: 1000 LayerCount: 2 EndChar StartChar: ltshade Encoding: 22 9617 165 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: shade Encoding: 23 9618 166 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: dkshade Encoding: 24 9619 167 -Width: 500 +Width: 615 Flags: W LayerCount: 2 EndChar StartChar: uni2596 -Encoding: 296 9622 168 +Encoding: 297 9622 168 Width: 1000 LayerCount: 2 EndChar StartChar: uni2597 -Encoding: 297 9623 169 +Encoding: 298 9623 169 Width: 1000 LayerCount: 2 EndChar StartChar: uni2598 -Encoding: 298 9624 170 +Encoding: 299 9624 170 Width: 1000 LayerCount: 2 EndChar StartChar: uni2599 -Encoding: 299 9625 171 +Encoding: 300 9625 171 Width: 1000 LayerCount: 2 EndChar StartChar: uni259A -Encoding: 300 9626 172 +Encoding: 301 9626 172 Width: 1000 LayerCount: 2 EndChar StartChar: uni259B -Encoding: 301 9627 173 +Encoding: 302 9627 173 Width: 1000 LayerCount: 2 EndChar StartChar: uni259C -Encoding: 302 9628 174 +Encoding: 303 9628 174 Width: 1000 LayerCount: 2 EndChar StartChar: uni259D -Encoding: 303 9629 175 +Encoding: 304 9629 175 Width: 1000 LayerCount: 2 EndChar StartChar: uni259E -Encoding: 304 9630 176 +Encoding: 305 9630 176 Width: 1000 LayerCount: 2 EndChar StartChar: uni259F -Encoding: 305 9631 177 +Encoding: 306 9631 177 Width: 1000 LayerCount: 2 EndChar StartChar: arrowleft -Encoding: 306 8592 178 +Encoding: 307 8592 178 Width: 1000 LayerCount: 2 EndChar StartChar: arrowup -Encoding: 307 8593 179 +Encoding: 308 8593 179 Width: 1000 LayerCount: 2 EndChar StartChar: arrowright -Encoding: 308 8594 180 +Encoding: 309 8594 180 Width: 1000 LayerCount: 2 EndChar StartChar: arrowdown -Encoding: 309 8595 181 +Encoding: 310 8595 181 Width: 1000 LayerCount: 2 EndChar StartChar: uni2B60 -Encoding: 310 11104 182 +Encoding: 311 11104 182 Width: 1000 LayerCount: 2 EndChar StartChar: uni2B61 -Encoding: 311 11105 183 +Encoding: 312 11105 183 Width: 1000 LayerCount: 2 EndChar StartChar: uni2B62 -Encoding: 312 11106 184 +Encoding: 313 11106 184 Width: 1000 LayerCount: 2 EndChar StartChar: uni2B63 -Encoding: 313 11107 185 +Encoding: 314 11107 185 Width: 1000 LayerCount: 2 EndChar StartChar: uni2B80 -Encoding: 314 11136 186 +Encoding: 315 11136 186 Width: 1000 LayerCount: 2 EndChar StartChar: uni2B81 -Encoding: 315 11137 187 +Encoding: 316 11137 187 Width: 1000 LayerCount: 2 EndChar StartChar: uni2B82 -Encoding: 316 11138 188 +Encoding: 317 11138 188 Width: 1000 LayerCount: 2 EndChar StartChar: uni2B83 -Encoding: 317 11139 189 +Encoding: 318 11139 189 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: periodcentered +Encoding: 1 183 190 Width: 1000 LayerCount: 2 EndChar EndChars -BitmapFont: 13 190 10 3 1 slavfox +BitmapFont: 13 191 10 3 1 slavfox BDFStartProperties: 45 -FONT 1 "-slavfox-Cozette-Medium-R-Normal--13-120-75-75-M-60--0" +FONT 1 "-slavfox-Cozette8Wide-Medium-R-Normal--13-120-75-75-M-60--0" SIZE 1 "12 75 75" FONTBOUNDINGBOX 16 "7 13 0 -3" COMMENT 0 "Generated by fontforge, http://fontforge.sourceforge.net" COMMENT 0 "(c) 2020-2023 Slavfox" FOUNDRY 16 "slavfox" -FAMILY_NAME 16 "Cozette" +FAMILY_NAME 16 "Cozette8Wide" WEIGHT_NAME 16 "Medium" SLANT 16 "R" SETWIDTH_NAME 16 "Normal" @@ -1337,7 +1346,7 @@ AVERAGE_WIDTH 18 60 CHARSET_REGISTRY 16 "" CHARSET_ENCODING 16 "0" FONTNAME_REGISTRY 16 "" -FONT_NAME 16 "Cozette" +FONT_NAME 16 "Cozette8Wide" FACE_NAME 16 "Cozette" COPYRIGHT 16 "(c) 2020-2023 Slavfox" FONT_VERSION 16 "1.232" @@ -1364,385 +1373,387 @@ AVG_LOWERCASE_WIDTH 18 60 AVG_UPPERCASE_WIDTH 18 60 BDFEndProperties Resolution: 75 -BDFChar: 0 0 6 1 5 0 7 +BDFChar: 0 0 8 1 5 0 7 E/9$p?m$R7 -BDFChar: 1 1 6 2 4 2 4 +BDFChar: 1 256 8 2 4 2 4 5i=m- -BDFChar: 2 2 6 1 5 0 5 +BDFChar: 2 2 8 1 5 0 5 E,]b=+P6Yo -BDFChar: 3 3 6 1 5 0 7 +BDFChar: 3 3 8 1 5 0 7 E/4c*0H_J\ -BDFChar: 4 4 6 0 6 0 6 +BDFChar: 4 4 8 0 6 0 6 Cm'C%6mrTH -BDFChar: 5 5 6 0 6 0 6 +BDFChar: 5 5 8 0 6 0 6 D#XG5HoMZ; -BDFChar: 6 6 6 1 5 1 6 +BDFChar: 6 6 8 1 5 1 6 +<^GUE/4Jo -BDFChar: 7 7 6 1 5 1 6 +BDFChar: 7 7 8 1 5 1 6 +<^GuE/4Jo -BDFChar: 8 256 6 0 0 0 0 +BDFChar: 8 257 6 0 0 0 0 z -BDFChar: 9 257 6 0 0 0 0 +BDFChar: 9 258 6 0 0 0 0 z -BDFChar: 10 258 12 0 0 0 0 +BDFChar: 10 259 12 0 0 0 0 z -BDFChar: 11 8 6 1 5 -2 5 +BDFChar: 11 8 8 1 5 -2 5 E/9=+E$0*B -BDFChar: 12 9 6 0 5 0 5 +BDFChar: 12 9 8 0 5 0 5 *"6qNOC/%g -BDFChar: 13 259 6 0 0 0 0 +BDFChar: 13 260 6 0 0 0 0 z -BDFChar: 14 260 6 0 0 0 0 +BDFChar: 14 261 6 0 0 0 0 z -BDFChar: 15 261 6 0 0 0 0 +BDFChar: 15 262 6 0 0 0 0 z -BDFChar: 16 10 6 2 3 0 6 +BDFChar: 16 10 8 2 3 0 6 5X7S"5et/8 -BDFChar: 17 11 6 2 5 0 6 +BDFChar: 17 11 8 2 5 0 6 ?r0*R5et/8 -BDFChar: 18 12 6 0 5 0 7 +BDFChar: 18 12 8 0 5 0 7 E(iYf7)[:X -BDFChar: 19 262 6 0 0 0 0 +BDFChar: 19 263 6 0 0 0 0 z -BDFChar: 20 32 6 6 6 -1 -1 +BDFChar: 20 32 8 6 6 -1 -1 z -BDFChar: 21 33 6 3 3 0 7 +BDFChar: 21 33 8 3 3 0 7 J:N0#J:IWM -BDFChar: 22 34 6 2 4 6 8 +BDFChar: 22 34 8 2 4 6 8 TV.qX -BDFChar: 23 35 6 1 5 0 7 +BDFChar: 23 35 8 1 5 0 7 :f-p`;#!j` -BDFChar: 24 36 6 1 5 -1 8 +BDFChar: 24 36 8 1 5 -1 8 +E49PE%!-5E$,,\ -BDFChar: 25 37 6 1 5 0 8 +BDFChar: 25 37 8 1 5 0 8 5bLXZ+@)#:&-)\1 -BDFChar: 26 38 6 1 5 0 8 +BDFChar: 26 38 8 1 5 0 8 +AblWBTS=;BE/#4 -BDFChar: 27 39 6 3 3 6 8 +BDFChar: 27 39 8 3 3 6 8 J:N.M -BDFChar: 28 40 6 2 4 -2 8 +BDFChar: 28 40 8 2 4 -2 8 +@&2BJ:N0#5X6Fl -BDFChar: 29 41 6 2 4 -2 8 +BDFChar: 29 41 8 2 4 -2 8 J3Z@B+9S -BDFChar: 64 76 6 1 5 0 7 +BDFChar: 64 76 8 1 5 0 7 J:N0#J:N1F -BDFChar: 65 77 6 1 5 0 7 +BDFChar: 65 77 8 1 5 0 7 LtJZ)LkpkC -BDFChar: 66 78 6 1 5 0 7 +BDFChar: 66 78 8 1 5 0 7 LrdZ9W0is. -BDFChar: 67 79 6 1 5 0 7 +BDFChar: 67 79 8 1 5 0 7 E/9=+Lkpk+ -BDFChar: 68 80 6 1 5 0 7 +BDFChar: 68 80 8 1 5 0 7 n;)mVn:6%> -BDFChar: 69 81 6 1 5 -1 7 +BDFChar: 69 81 8 1 5 -1 7 E/9=+Lkq.+#QOi) -BDFChar: 70 82 6 1 5 0 7 +BDFChar: 70 82 8 1 5 0 7 n;)niOGJ^K -BDFChar: 71 83 6 1 5 0 7 +BDFChar: 71 83 8 1 5 0 7 E/9$`#RH6* -BDFChar: 72 84 6 1 5 0 7 +BDFChar: 72 84 8 1 5 0 7 p`L\%+LkpkCn,NFg -BDFChar: 87 99 6 1 5 0 5 +BDFChar: 87 99 8 1 5 0 5 E/9$pLi<=o -BDFChar: 88 100 6 1 5 0 8 +BDFChar: 88 100 8 1 5 0 8 #RC]\LkpkCGQ7^D -BDFChar: 89 101 6 1 5 0 5 +BDFChar: 89 101 8 1 5 0 5 E/=:>Li<=o -BDFChar: 90 102 6 1 5 0 8 +BDFChar: 90 102 8 1 5 0 8 3']au5X7S"5QCca -BDFChar: 91 103 6 1 5 -3 5 +BDFChar: 91 103 8 1 5 -3 5 G_h03Lj012Du]k< -BDFChar: 92 104 6 1 5 0 8 +BDFChar: 92 104 8 1 5 0 8 J:N1>LkpkCL]@DT -BDFChar: 93 105 6 2 5 0 7 +BDFChar: 93 105 8 2 5 0 7 5QJSb5X7Rg -BDFChar: 94 106 6 2 4 -2 7 +BDFChar: 94 106 8 2 4 -2 7 +95dl+qUM -BDFChar: 115 13 6 0 6 3 3 +BDFChar: 115 13 8 0 6 3 3 rVuou -BDFChar: 116 14 6 3 3 -3 9 +BDFChar: 116 14 8 3 3 -3 9 J:N0#J:N0#J:N0#J,fQL -BDFChar: 117 15 6 3 6 -3 3 +BDFChar: 117 15 8 3 6 -3 3 n:6%>J:N.M -BDFChar: 118 16 6 3 6 3 9 +BDFChar: 118 16 8 3 6 3 9 J:N0#J:R+h -BDFChar: 119 17 6 3 6 -3 9 +BDFChar: 119 17 8 3 6 -3 9 J:N0#J:R->J:N0#J,fQL -BDFChar: 120 18 6 0 3 -3 9 +BDFChar: 120 18 8 0 3 -3 9 &.fBa&.n=B&.fBa&-)\1 -BDFChar: 121 19 6 0 6 -3 3 +BDFChar: 121 19 8 0 6 -3 3 rX]VP&.fBQ -BDFChar: 122 20 6 0 6 3 9 +BDFChar: 122 20 8 0 6 3 9 &.fBa&.ng@ -BDFChar: 123 21 6 0 6 -3 9 +BDFChar: 123 21 8 0 6 -3 9 &.fBa&.ngP&.fBa&-)\1 -BDFChar: 124 263 6 0 0 0 0 +BDFChar: 124 264 6 0 0 0 0 z -BDFChar: 125 264 6 0 0 0 0 +BDFChar: 125 265 6 0 0 0 0 z -BDFChar: 126 265 6 0 0 0 0 +BDFChar: 126 266 6 0 0 0 0 z -BDFChar: 127 266 6 0 0 0 0 +BDFChar: 127 267 6 0 0 0 0 z -BDFChar: 128 267 6 0 0 0 0 +BDFChar: 128 268 6 0 0 0 0 z -BDFChar: 129 268 6 0 0 0 0 +BDFChar: 129 269 6 0 0 0 0 z -BDFChar: 130 269 6 0 0 0 0 +BDFChar: 130 270 6 0 0 0 0 z -BDFChar: 131 270 6 0 0 0 0 +BDFChar: 131 271 6 0 0 0 0 z -BDFChar: 132 271 6 0 0 0 0 +BDFChar: 132 272 6 0 0 0 0 z -BDFChar: 133 272 6 0 0 0 0 +BDFChar: 133 273 6 0 0 0 0 z -BDFChar: 134 273 6 0 0 0 0 +BDFChar: 134 274 6 0 0 0 0 z -BDFChar: 135 274 6 0 0 0 0 +BDFChar: 135 275 6 0 0 0 0 z -BDFChar: 136 275 6 0 0 0 0 +BDFChar: 136 276 6 0 0 0 0 z -BDFChar: 137 276 6 0 0 0 0 +BDFChar: 137 277 6 0 0 0 0 z -BDFChar: 138 277 6 0 0 0 0 +BDFChar: 138 278 6 0 0 0 0 z -BDFChar: 139 278 6 0 0 0 0 +BDFChar: 139 279 6 0 0 0 0 z -BDFChar: 140 279 6 0 0 0 0 +BDFChar: 140 280 6 0 0 0 0 z -BDFChar: 141 280 6 0 0 0 0 +BDFChar: 141 281 6 0 0 0 0 z -BDFChar: 142 281 6 0 0 0 0 +BDFChar: 142 282 6 0 0 0 0 z -BDFChar: 143 282 6 0 0 0 0 +BDFChar: 143 283 6 0 0 0 0 z -BDFChar: 144 283 6 0 0 0 0 +BDFChar: 144 284 6 0 0 0 0 z -BDFChar: 145 284 6 0 0 0 0 +BDFChar: 145 285 6 0 0 0 0 z -BDFChar: 146 285 6 0 0 0 0 +BDFChar: 146 286 6 0 0 0 0 z -BDFChar: 147 286 6 0 0 0 0 +BDFChar: 147 287 6 0 0 0 0 z -BDFChar: 148 287 6 0 0 0 0 +BDFChar: 148 288 6 0 0 0 0 z -BDFChar: 149 288 6 0 0 0 0 +BDFChar: 149 289 6 0 0 0 0 z -BDFChar: 150 25 6 0 6 -3 -2 +BDFChar: 150 25 8 0 6 -3 -2 rr)lt -BDFChar: 151 26 6 0 6 -3 0 +BDFChar: 151 26 8 0 6 -3 0 rr2or -BDFChar: 152 27 6 0 6 -3 1 +BDFChar: 152 27 8 0 6 -3 1 rr2orrVuou -BDFChar: 153 28 6 0 6 -3 3 +BDFChar: 153 28 8 0 6 -3 3 rr2orrr2ls -BDFChar: 154 29 6 0 6 -3 5 +BDFChar: 154 29 8 0 6 -3 5 rr2orrr2orrVuou -BDFChar: 155 30 6 0 6 -3 7 +BDFChar: 155 30 8 0 6 -3 7 rr2orrr2orrr2ls -BDFChar: 156 31 6 0 6 -3 8 +BDFChar: 156 31 8 0 6 -3 8 rr2orrr2orrr2or -BDFChar: 157 127 6 0 6 -3 9 +BDFChar: 157 127 8 0 6 -3 9 rr2orrr2orrr2orrVuou -BDFChar: 158 289 6 0 0 0 0 +BDFChar: 158 290 6 0 0 0 0 z -BDFChar: 159 290 6 0 0 0 0 +BDFChar: 159 291 6 0 0 0 0 z -BDFChar: 160 291 6 0 0 0 0 +BDFChar: 160 292 6 0 0 0 0 z -BDFChar: 161 292 6 0 0 0 0 +BDFChar: 161 293 6 0 0 0 0 z -BDFChar: 162 293 6 0 0 0 0 +BDFChar: 162 294 6 0 0 0 0 z -BDFChar: 163 294 6 0 0 0 0 +BDFChar: 163 295 6 0 0 0 0 z -BDFChar: 164 295 6 0 0 0 0 +BDFChar: 164 296 6 0 0 0 0 z -BDFChar: 165 22 6 0 6 -3 9 +BDFChar: 165 22 8 0 6 -3 9 La%X!La%X!La%X!L]@DT -BDFChar: 166 23 6 0 6 -3 9 +BDFChar: 166 23 8 0 6 -3 9 W`5utW`5utW`5utWW3#! -BDFChar: 167 24 6 0 6 -3 9 +BDFChar: 167 24 8 0 6 -3 9 ]'d/t]'d/t]'d/t\c;^1 -BDFChar: 168 296 6 0 0 0 0 +BDFChar: 168 297 6 0 0 0 0 z -BDFChar: 169 297 6 0 0 0 0 +BDFChar: 169 298 6 0 0 0 0 z -BDFChar: 170 298 6 0 0 0 0 +BDFChar: 170 299 6 0 0 0 0 z -BDFChar: 171 299 6 0 0 0 0 +BDFChar: 171 300 6 0 0 0 0 z -BDFChar: 172 300 6 0 0 0 0 +BDFChar: 172 301 6 0 0 0 0 z -BDFChar: 173 301 6 0 0 0 0 +BDFChar: 173 302 6 0 0 0 0 z -BDFChar: 174 302 6 0 0 0 0 +BDFChar: 174 303 6 0 0 0 0 z -BDFChar: 175 303 6 0 0 0 0 +BDFChar: 175 304 6 0 0 0 0 z -BDFChar: 176 304 6 0 0 0 0 +BDFChar: 176 305 6 0 0 0 0 z -BDFChar: 177 305 6 0 0 0 0 +BDFChar: 177 306 6 0 0 0 0 z -BDFChar: 178 306 6 0 0 0 0 +BDFChar: 178 307 6 0 0 0 0 z -BDFChar: 179 307 6 0 0 0 0 +BDFChar: 179 308 6 0 0 0 0 z -BDFChar: 180 308 6 0 0 0 0 +BDFChar: 180 309 6 0 0 0 0 z -BDFChar: 181 309 6 0 0 0 0 +BDFChar: 181 310 6 0 0 0 0 z -BDFChar: 182 310 6 0 0 0 0 +BDFChar: 182 311 6 0 0 0 0 z -BDFChar: 183 311 6 0 0 0 0 +BDFChar: 183 312 6 0 0 0 0 z -BDFChar: 184 312 6 0 0 0 0 +BDFChar: 184 313 6 0 0 0 0 z -BDFChar: 185 313 6 0 0 0 0 +BDFChar: 185 314 6 0 0 0 0 z -BDFChar: 186 314 6 0 0 0 0 +BDFChar: 186 315 6 0 0 0 0 z -BDFChar: 187 315 6 0 0 0 0 +BDFChar: 187 316 6 0 0 0 0 z -BDFChar: 188 316 6 0 0 0 0 +BDFChar: 188 317 6 0 0 0 0 z -BDFChar: 189 317 6 0 0 0 0 +BDFChar: 189 318 6 0 0 0 0 +z +BDFChar: 190 1 13 0 0 0 0 z EndBitmapFont EndSplineFont diff --git a/cozette.png b/cozette.png index 303518b..851f38e 100644 Binary files a/cozette.png and b/cozette.png differ diff --git a/src/main.rs b/src/main.rs index be4fca3..6668847 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,66 +1,44 @@ -#![allow(dead_code, clippy::println_empty_string)] -use std::{ - fs::File, - ops::{Add, AddAssign}, -}; +#![allow(clippy::println_empty_string)] +use std::{fs::File, io, path::PathBuf, u8}; extern crate png; -extern crate bdf; -const ADDRESS_SIZE: usize = 13; -const ROW_BITS: usize = 5; -const CHAR_BITS: usize = 8; - const MAX_ROWS: usize = 13; -const MAX_CHARS: u8 = 0xFF; +const MAX_CHARS: u16 = 0x100; // Non inclusive, first char is 0x00 -struct CharRowAddress { - row_address: u8, - char_address: u8, +fn to_bitmap(path: &str, max_chars: u16, max_rows: usize) -> Result, io::Error> { + let decoder = png::Decoder::new(File::open(path)?); + let mut reader = decoder.read_info()?; + let mut buf = vec![0; reader.output_buffer_size()]; + let info = reader.next_frame(&mut buf)?; + let bytes = &buf[..info.buffer_size()]; + let compressed: Vec = bytes.iter().step_by(4).cloned().collect(); // We're not using color, so we skip duplicate color components + let mut finalbuf = Vec::new(); + for (i, _bit) in compressed.iter().step_by(8).enumerate() { + let mut byte = 0u8; + for j in (0..8).rev() { + if compressed[i * 8 + j] == 255 { + byte |= 0x80 >> j; + } + } + finalbuf.push(byte); + } + Ok(finalbuf) } -impl CharRowAddress { - fn new() -> Self { - Self { - row_address: 0x00, - char_address: 0x00, - } - } - fn inc_row(&mut self) { - if self.row_address.add(0x01) > 0b0001_1111 { - } else { - self.row_address.add_assign(0x01); - } - } - fn inc_char(&mut self) { - if self.char_address.add(0x01) > 0b0111_1111 { - } else { - self.char_address.add_assign(0x01); - } - } -} - -impl std::fmt::Display for CharRowAddress { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:05b}{:07b}", self.row_address, self.char_address) - } +fn reorder_bitmap(bitmap: Vec) -> Vec { + unimplemented!() } fn main() -> std::io::Result<()> { - let decoder = png::Decoder::new(File::open("./cozette.png").unwrap()); - let mut reader = decoder.read_info().unwrap(); - let mut buf = vec![0; reader.output_buffer_size()]; - let info = reader.next_frame(&mut buf).unwrap(); - let bytes = &buf[..info.buffer_size()]; - let compressed: Vec = bytes.iter().step_by(4).cloned().collect(); - let mut address = CharRowAddress::new(); + let compressed = to_bitmap("./cozette.png", MAX_CHARS, MAX_ROWS)?; for row in 0..MAX_ROWS { - address.inc_row(); - for character in 0x00..0x7F { - address.inc_char(); - print!("{} ", character as usize * row); - for i in 0..7 { - if compressed[character as usize * 7 + i + (row * 0x7f)] == 255 { + for character in 0x00..MAX_CHARS { + print!("{:#04x}, {} ", character, row); // character as usize * row); + print!("{:#04x}: ", compressed[character as usize + (row * 0xFF)]); + for i in 0..8 { + // character number * char width + pixel offset + row offset = pixel + if compressed[character as usize + (row * 0xFF)] & 0x80 >> i > 0 { print!("█"); } else { print!(" ");